在我的应用程序中,我进行了不同的调用,除了一个调用外,它们都有效,该调用仅返回一个字符串作为响应作为 SUCCESS。我收到这个错误
"The operation couldn’t be completed. (Cocoa error 3840.)", NSLocalizedDescription=Loaded an unprocessable response (200) with content type 'application/json'}
我如何告诉 restkit 访问“Content-Type:text/plain”
这是一个邮寄电话。
最佳答案
简短的回答:你不能。 RestKit 被设计为仅使用 JSON 对象,因此它期望 JSON 响应(与 RESTful 范式保持一致)。
但是,您绝对可以使用 AFNetworking 发布对象,RestKit 实际上包括在内。我使用 AFNetworking 进行非 coreData 相关的通信。下面是一个代码示例,说明如何从 RestKit 获取 AFHTTPClient 并进行 POST,期待 text/plain
响应。
AFHTTPClient *httpClient = [RKObjectManager sharedManager].HTTPClient;
NSDictionary *requestObject = @{@"label1":data1, @"label2":data2};
[httpClient setParameterEncoding:AFJSONParameterEncoding];
[httpClient setDefaultHeader:@"Accept" value:@"text/plain"];
[httpClient postPath:urlPath parameters:requestObject success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSString *response = (NSString*)responseObject;
if([response isEqualToString:@"SUCCESS"]) NSLog(@"It worked!");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//failure code goes here
}];
如果那是您唯一需要 text/plain
的调用,请在完成后更改 Accept
header :
[httpClient setDefaultHeader:@"Accept" value:@"application/json"];
关于ios - Reskit 响应只是一个字符串,而不是 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23941379/