2016-04-14 110 views
0

我已使用以下代码通过NSURLSession发送请求,但它返回的结果不正确。但如果我检查与POSTMAN相同的参数和网址,那么它工作正常。请帮忙。NSURLSessionDataTask返回不正确的结果

// URL of the endpoint we're going to contact. 
NSURL *url = url; 

// Create a simple dictionary with numbers. 
NSDictionary *param = @{@"key1": @"value1"}; 

NSError *error = nil; 
// Convert the dictionary into JSON data. 
NSData *JSONData = [NSJSONSerialization dataWithJSONObject:param 
                options:kNilOptions error:&error]; 

// Create a POST request with our JSON as a request body. 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
request.HTTPMethod = @"POST"; 
request.HTTPBody = JSONData; 

// Create a task. 
NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request 
                  completionHandler:^(NSData *data, 
                       NSURLResponse *response, 
                       NSError *error) 
           { 
            if (!error) 
            { 
             if (data) { 
              json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; 
              success(json); 

             } 
             else { 
              failure(error); 
              NSLog(@"******************* error in sendRequestToServer"); 
             } 
             //NSLog(@"Status code: %i", ((NSHTTPURLResponse *)response).statusCode); 
            } 
            else { 
             failure(error); 
             NSLog(@"******************* error in sendRequestToServer"); 
            } 
           }]; 

// Start the task. 
[task resume]; 
+0

什么不正确的结果?你怎么知道这是不同的?你进入一个错误的情况? – Larme

+0

它没有提供任何错误。但结果不同于POSTMAN –

+0

有多少不同?错误的结果? – Larme

回答

0

我会从设置Content-Type标题开始。大多数服务器根据内容类型处理POST请求的方式不同,并且您没有设置。