OGeek|极客世界-中国程序员成长平台

标题: iphone - 使用 restkit 发送 HTTPBody 数据 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 11:34
标题: iphone - 使用 restkit 发送 HTTPBody 数据


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

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

    NSString *squery = @"{\"Sort\":\"Relevance\",\"DaysToSearch\":0,\"WorkType\":\"\",\"ageSize\":20,\"LastRunCount\":0,\"IndustryCodes\":[\"\"],\"AccountId\":27,\"Experience\":\"\",\"GetResultCount\":0,\"Keywords\":\"iOS\",\"ageIndex\":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; 有问题吗? ???

马丁·马加基安



Best Answer-推荐答案


好吧,我想我知道了。

我用

激活了 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&ageIndex=0&DistanceFromLocation=250&ageSize=20&JobQueryId=&JobTitleCodes[]=.

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

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

关于iphone - 使用 restkit 发送 HTTPBody 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9256732/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4