错误域= NSURLErrorDomain代码= -1017“无法解析响应”
我在发布json时遇到错误。
错误域= NSURLErrorDomain代码= -1017“无法解析响应”UserInfo = 0x7f89dac01a40 {NSUnderlyingError = 0x7f89e0277a20“无法解析响应”,NSErrorFailingURLStringKey = http://test-onboard.qlc.in/FieldSense/authenticate,NSErrorFailingURLKey = http:// test-onboard.qlc.in/FieldSense/authenticate,_kCFStreamErrorDomainKey = 4,_kCFStreamErrorCodeKey = -1,NSLocalizedDescription =无法解析响应}
这是我的代码:
NSDictionary *dictionaryData=[[NSDictionary alloc]initWithObjectsAndKeys:self.txtUsername.text, @"userEmailAddress", self.txtPassword.text, @"password",nil]; NSData* jsonData = [NSJSONSerialization dataWithJSONObject:dictionaryData options:kNilOptions error:&error]; [request setURL:url]; [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; [request setHTTPBody:jsonData];
我也得到了这个错误,但我通过添加一行来克服这个问题
request.HTTPMethod = "POST"
对于Objective-C编程使用这个:
[request setHTTPMethod:@"POST"];
我和Alamofire有同样的问题,错误导致了这个问题:
let encoding = Alamofire.ParameterEncoding.JSON let (encodedRequest, _) = encoding.encode(URLRequest, parameters: params)
我的变量参数是dict [:]。 我改为参数:nil和它的工作。
对于任何其他error code -1017
– 我通过在我的http请求中手动设置我的http标error code -1017
修复它。 我认为服务器在解析HTTP头时遇到问题,因为而不是字符串“Authorization”:“qii2nl32j2l3jel”我的标题没有这样的引号:授权:“1i2j12j”。 祝你好运。
像这样的东西:
NSDictionary* newRequestHTTPHeader = [[NSMutableDictionary alloc] init]; [newRequestHTTPHeader setValue:authValue forKey:@"\"Authorization\""]; [newRequestHTTPHeader setValue:contentLengthVal forKey:@"\"Content-Length\""]; [newRequestHTTPHeader setValue:contentMD5Val forKey:@"\"Content-MD5\""]; [newRequestHTTPHeader setValue:contentTypeVal forKey:@"\"Content-Type\""]; [newRequestHTTPHeader setValue:dateVal forKey:@"\"Date\""]; [newRequestHTTPHeader setValue:hostVal forKey:@"\"Host\""]; [newRequestHTTPHeader setValue:publicValue forKey:@"\"public-read-write\""]; //the proper request is built with the new http headers. NSMutableURLRequest* request2 = [[NSMutableURLRequest alloc] initWithURL:request.URL]; [request2 setAllHTTPHeaderFields:newRequestHTTPHeader]; [request2 setHTTPMethod:request.HTTPMethod];
在get请求中设置参数时出现此1017错误:
let headers = [ "Cookie": "", ] Alamofire.request(urlString, parameters: ["token": token],encoding: JSONEncoding.default, headers: headers).responseJSON { ...
这没有错误:
let headers = [ "Cookie": "", "Authorization" : "Token " + token ] Alamofire.request(urlString, method: .get, encoding: JSONEncoding.default, headers: headers).responseJSON {