2015-05-31 204 views
0

我有一个web服务,我可以通过邮递员实用程序成功进行邮寄呼叫。在Postman设置是 enter image description hereAFNetworking POST请求失败代码= -1011(400)

我使用AFNetworking。这是我的代码:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
NSDictionary *parameters = @{@"offset": @"1", @"csrf-token": @"63b164ea557b4aba694f81520c71972fa43a9772"}; 
manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
[manager POST:@"http://simple.com/" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"JSON: %@", responseObject); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@", error); 
}]; 

,但我得到这个错误:

Error: Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: bad request (400)" UserInfo=0x7a6c5240 {com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x7a6b5360> { URL: http://simple.com/ } { status code: 400, headers { 
    "Cache-Control" = "no-store, no-cache, must-revalidate, post-check=0, pre-check=0, private, must-revalidate"; 
    Connection = "keep-alive"; 
    "Content-Encoding" = gzip; 
    "Content-Type" = "text/html; charset=utf-8"; 
    Date = "Sun, 31 May 2015 15:40:26 GMT"; 
    Expires = "Thu, 19 Nov 1981 08:52:00 GMT"; 
    Pragma = "no-cache"; 
    Server = "nginx/1.6.2"; 
    "Set-Cookie" = "csrf-token=5589461e87b28a538953ccac4168bf1f98b20b1ds%3A40%3A%22f52bda5262260a3ee0a10efcf48a6a49c11e4103%22%3B; path=/, PHPSESSID=803db60816b9f8203fb8feca01c130b6; path=/"; 
    "Transfer-Encoding" = Identity; 
    Vary = "Accept-Encoding,User-Agent"; 
    "X-Powered-By" = "PHP/5.5.17"; 

这是一个没有AFNetworking:

​​3210

,并再次错误:400

请帮忙解决问题

+0

@ilesh我的问题更正我在下面的答案中描述 – runia

回答

0

我解决了他的问题。

服务器与特定的CSRF令牌保持会话的事实。我的错误是我在浏览器和移动设备上使用了相同的标记。因此,服务器并没有给出详细信息,因为得到错误的POST请求。

我的解决办法:我首先得到了一个服务器CSRF令牌,然后再POST查询我使用生成的令牌。为了响应POST请求,我得到了状态200和我需要的数据。

确实AFNetworking我对这个问题并没有真正的帮助,所以我不得不使用标准的NSURLConnection(我把代码放在问题中)。也许将来有人会派上用场!

谢谢大家!祝你们好运!

相关问题