【问题标题】:Send HTTPBody data with restkit使用 restkit 发送 HTTPBody 数据
【发布时间】:2012-03-04 15:09:01
【问题描述】:


我正在使用名为“Poster”的 Firefox 工具来检查我的 Web 服务是否正常工作。当我发布请求时,我会在要发送的内容中发送一个 JSON 对象(也称为 HTTP body data)。
当我按下 POST 按钮时,结果很好。

现在我想在objective-c中对RestKit做同样的事情:

    NSString *squery = @"{\"Sort\":\"Relevance\",\"DaysToSearch\":0,\"WorkType\":\"\",\"PageSize\":20,\"LastRunCount\":0,\"IndustryCodes\":[\"\"],\"AccountId\":27,\"Experience\":\"\",\"GetResultCount\":0,\"Keywords\":\"iOS\",\"PageIndex\":0,\"DistanceFromLocation\":\"250\",\"SalaryType\":\"\",\"JobQueryId\":\"\",\"JobTitleCodes\":[\"\"]}";

RKObjectLoader *objectLoader = [[RKObjectManager sharedManager] objectLoaderWithResourcePath:url delegate:performJobQueryHandler];
objectLoader.method = RKRequestMethodPOST;
objectLoader.objectMapping = s.jobQueryDataMapper;
objectLoader.HTTPBody = [squery dataUsingEncoding:NSUTF8StringEncoding];
objectLoader.serializationMIMEType = RKMIMETypeJSON;
[objectLoader send];

结果我得到:“发生了非故障异常。”




在 FireFox 扩展“海报”中,如果我使用与“application/json”不同的矿类型,比如说“application/x-www-form-urlencoded”,我会收到相同的错误:“发生非故障异常。 "
objectLoader.serializationMIMEType = RKMIMETypeJSON; 有问题吗? ???

马丁·马加基安

【问题讨论】:

  • 有关信息,错误“发生非故障异常”。是我的网络服务返回的字符串
  • 你能调试网络服务吗?如果您从 Web 服务收到此消息,似乎单步执行该代码将是找出异常发生原因的最快方法。

标签: iphone objective-c ios json restkit


【解决方案1】:

好吧,我想我知道了。

我用

激活了 RestKit 调试

RKLogConfigureByName("RestKit/Network", RKLogLevelTrace);

我得到:

2012-02-14 11:55:48 [4048:207] T restkit.network:RKRequest.m:318 Prepared POST URLRequest '<NSMutableURLRequest http://servicestest.foo.com/jobservice/jobservice.svc/json/jobquery>'. HTTP Headers: {
Accept = "application/json";
"Content-Type" = "application/x-www-form-urlencoded";
}. HTTP Body: Sort=Relevance&DaysToSearch=0&WorkType=&SalaryType=&LastRunCount=0&IndustryCodes[]=&Experience=&AccountId=0&GetResultCount=0&PageIndex=0&DistanceFromLocation=250&PageSize=20&JobQueryId=&JobTitleCodes[]=.

所以我认为使用 RKObjectLoader 对象并不关心 objectLoader.serializationMIMEType = RKMIMETypeJSON;因为 Content-Type 仍然是 "Content-Type" = "application/x-www-form-urlencoded";而不是 "Content-Type" = "application/json";

您认为这是错误还是正常行为?

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-28
  • 1970-01-01
  • 2020-07-21
  • 1970-01-01
  • 2011-09-25
  • 1970-01-01
相关资源
最近更新 更多