我在一个项目中使用RestKit并得到一个意外的响应'---',所以我尝试使用标准的NSURLConnection,但我得到了正确的响应 - 一个json格式的字符串。任何人都可以弄清楚这两个请求之间的区别是什么?如果它有所不同,则内容类型为响应的“text / yaml”。
这是返回'---'
的RKRequest版本NSURL *URL = [NSURL URLWithString:URL_STRING];
RKRequest *request = [RKRequest requestWithURL:URL delegate:self];
request.queue = [RKClient sharedClient].requestQueue;
request.authenticationType = RKRequestAuthenticationTypeHTTP;
request.method = RKRequestMethodPOST;
request.params = requestParams;
[request send];
这是NSURLConnection版本,它在json / yaml中返回格式正确的响应。
NSURL *url = [NSURL URLWithString:URL_STRING];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];
NSData *requestData = [NSData dataWithBytes:[requestParams UTF8String]
length:[requestParams length]];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody: requestData];
更新:
好的,现在情况变得非常奇怪 - 它完全停止了对NSURLConnection和RestKit的工作。如果有人可以提供帮助,将不胜感激,这里是我使用的cURL扔终端验证结果(这仍然有效)。
curl -i -H "Content-Type: application/json" -H "Accept: application/json" -d '{"username":"username","password":"password"}' http://example.com/login
我的requestParams是@“{\”username \“:\”username \“,\”password \“:\”password \“}”