Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 使用restkit发送HTTPBody数据_Iphone_Objective C_Ios_Json_Restkit - Fatal编程技术网

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服务收到此消息的,那么似乎单步执行该代码将是找出异常发生原因的最快方法。如果您认为这是一个问题,您可以改为将其发布在-我想您的响应会有很大改进。