Iphone 使用restkit发送HTTPBody数据
Iphone 使用restkit发送HTTPBody数据,iphone,objective-c,ios,json,restkit,Iphone,Objective C,Ios,Json,Restkit,我正在使用一个名为“Poster”的firefox工具来检查我的web服务是否正常工作。当我发布请求时,我在要发送的内容中发送一个JSON对象(也称为调用) 当我按下POST按钮时,结果很好。 现在我想对objective-c做完全相同的操作: NSString *squery = @"{\"Sort\":\"Relevance\",\"DaysToSearch\":0,\"WorkType\":\"\",\"PageSize\":20,\"LastRunCount\":0,\"Ind
我正在使用一个名为“Poster”的firefox工具来检查我的web服务是否正常工作。当我发布请求时,我在要发送的内容中发送一个JSON对象(也称为调用)
当我按下POST按钮时,结果很好。 现在我想对objective-c做完全相同的操作:
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扩展“Poster”中,如果我使用了与“application/json”不同的mine类型,比如“application/x-www-form-urlencoded”,我会得到相同的错误:“发生了无故障异常。”
objectLoader.serializationMIMEType=RKMIMETypeJSON;是否有问题
马丁·马加基安好吧,我想我知道了
我用调试激活了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[]=.
2012-02-14 11:55:48[4048:207]T restkit.network:RKRequest.m:318已准备好发布URL请求“”。HTTP标头:{
Accept=“application/json”;
“内容类型”=“应用程序/x-www-form-urlencoded”;
}.HTTP正文: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”=“application/x-www-form-urlencoded”;而不是“内容类型”=“应用程序/json”
您认为这是错误还是正常行为?有关错误“发生了非故障异常”的信息,请参阅my web service返回的字符串。您可以调试web service吗?如果您是从web服务收到此消息的,那么似乎单步执行该代码将是找出异常发生原因的最快方法。如果您认为这是一个问题,您可以改为将其发布在-我想您的响应会有很大改进。