1

我正在使用AFNetworking框架将一些数据发送到.Net后端。我正在使用POST:parameters:success:failure:方法。

.net 后端正在使用该FromBody属性读取数据

 [System.Web.Mvc.HttpPost]
        public HttpResponseMessage Post([FromBody] string objCourseData, string securityToken, string appVer, string deviceDesc, string deviceOSDesc)

但它接收它为空。我已经尝试过使用 PHP,我可以在$_POST对象中看到我的身体数据(虽然我看不到它$HTTP_RAW_POST_DATA)。可能是什么问题呢?

我发送的数据是 JSON 对象。

4

1 回答 1

2

我不使用 AFNetworking,但使用本机代码很简单:

NSString *urlString = @"http://www.urlpost.com";

//setting request
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url
                                                           cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
                                                       timeoutInterval:5];
[request setHTTPMethod:@"POST"];

//setting post body with JSON data
NSMutableDictionary *postDictionary = [NSMutableDictionary dictionary];
//set the data of your json
[postDictionary setValue:@"some value" forKey:@"myKey"];
NSError *jsonError;

//transform NSMutableDictionary in JSON data
NSData *postData = [NSJSONSerialization dataWithJSONObject:postDictionary
                                                   options:0
                                                     error:&jsonError];

if (!jsonError) {
    //set POST body
    [request setHTTPBody:postData];
}

//Here is the code for the post:
[[[NSURLSession sharedSession] dataTaskWithRequest:request
                                 completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

    if (!error) {
        //No errors, post done
        NSLog(@"POST done!");
    } else { 
       //error handling here 
    }
}] resume];
于 2014-07-11T13:03:03.707 回答