错误域= 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 {