2012-02-13 82 views
2


我正在使用Firefox工具調用「Poster」來檢查我的Web服務是否正常工作。當我POST請求發送一個JSON對象的內容發送(也叫HTTP body data)。
當我按開機自檢按鈕結果很好。 enter image description here用restkit發送HTTPBody數據

現在我想要做同樣與RestKit在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擴展「海報」如果我使用一個不同的礦型比「應用/ JSON」,讓說:「應用程序/ x-WWW的形式,進行了urlencoded」我得到了同樣的錯誤:「發生非故障異常。「
objectLoader.serializationMIMEType = RKMIMETypeJSON; ???

Martin Magakian

+0

有關信息,錯誤「發生了非故障異常。」是我的Web服務返回的字符串 – 2012-02-13 07:14:06

+0

您可以調試Web服務嗎?如果您從Web服務獲取此消息,則似乎要逐步瞭解該代碼,這將是找出發生異常的最快途徑。 – Caleb 2012-02-13 07:25:12

回答

3

好的,我想我知道了。

我激活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」;

您認爲這是一個錯誤還是正常行爲?

+0

如果您認爲這是一個問題,您可以改爲在https://github.com/RestKit/RestKit/issues上發佈這個問題 - 我想你的迴應會大大改善。 – 2013-04-01 10:43:34