【发布时间】:2014-04-26 11:34:54
【问题描述】:
我的客户向我提供了REST 服务,我应该得到JSON 对我的iOS 代码的响应。我使用content-type 作为“应用程序/json”,但不知何故它被视为“文本/html" 默认情况下。我在我的Mozilla浏览器中的REST客户端中交叉检查了这个,在标题部分使用“application/json”作为content-type,我可以看到正确的响应。使用下面的代码,我得到一个400错误从服务器。默认情况下,我总是可以看到“text/html”被用作400 响应的一部分
NSString * strBodyOnlineStart = [NSString stringWithFormat:@"&email=***@***.com&deviceCode=*****&password_value=***"];
NSURL *urlOnlineStart = [NSURL
URLWithString:@"http://local.server/xxxxx"];
NSMutableURLRequest *requestOnlineStart = [NSMutableURLRequest
requestWithURL:urlOnlineStart];
[requestOnlineStart setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[requestOnlineStart setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[requestOnlineStart setHTTPMethod:@"POST"];
NSData *requestBodyOnlineStart = [strBodyOnlineStart
dataUsingEncoding:NSUTF8StringEncoding];
[requestOnlineStart setHTTPBody:requestBodyOnlineStart];
【问题讨论】:
-
尝试将 "application/json" 更改为 "application/json; charset=utf-8" 并尝试使用 NSUTF8StringEncoding 对您的请求正文进行编码
-
你为什么使用 NSUTF32StringEncoding 字符串编码?您是否尝试使用 NSUTF8StringEncoding?
-
通过添加application/json; charset=utf-8 我仍然得到响应(内容类型文本/html,状态码 400)。和 @Visput 仅它的 nsutf8encoding。我打错了
-
ASP Web 服务在发送 json 响应之前未对其进行编码。再次检查 API
-
哪个 API?是 iOS 代码 API 还是服务器 API?并且响应在 Firefox REST 客户端 @Malloc 中正确出现
标签: ios json rest-client