ios - Reskit 响应只是一个字符串,而不是 JSON

标签 ios objective-c restkit-0.20

在我的应用程序中,我进行了不同的调用,除了一个调用外,它们都有效,该调用仅返回一个字符串作为响应作为 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/

相关文章:

ios - RestKit .20 RKRequestDescriptor postObject - (400-499) 中的预期状态代码,得到 200

ios - 使用 RestKIt 在核心数据实体中映射 json 对象

ios - 如何以编程方式将导航 Controller 嵌入 View 中?

ios - GCDAsyncSocket 丢失数据

ios - 如何将数据库存储在服务器中以便在 iOS 上访问?

ios - 动态收缩 SKSpriteNode

html - 为什么我的日期选择器在 iOS WebView 中清除后不显示

objective-c - Vimeo 视频无法在 iPad UIWebView 上播放

iphone - 为什么我的应用程序描述图像在应用程序商店上如此模糊?

ios - RestKit 对象映射 POST 响应, "CoreData: error: Failed to call designated initializer on NSManagedObject class mapping operation"