目标c请求不发送数据

时间:2016-01-31 10:52:15

标签: ios objective-c server

美好的一天。我正在尝试将简单的帖子数据发送到服务器。这是我如何做的代码。

 -(void)makeRequest:(NSString*)stringParameters{
    NSError *error;

    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
    NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil];
    NSURL *url = [NSURL URLWithString:@"http://vaenterprises.webatu.com/Authentication.php"];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
                                                           cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                       timeoutInterval:60.0];

    [request addValue:@"application/text" forHTTPHeaderField:@"Content-Type"];
    [request addValue:@"application/text" forHTTPHeaderField:@"Accept"];
    [request setHTTPMethod:@"POST"];
     NSString* postData = @"tag=hello&username=yo&something=something";
    [request setHTTPBody:postData];



    NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

        [self parseJson:data];
    }];

    [postDataTask resume];


}

看起来很棒,直到我像php这样回复整个帖子

echo json_encode($_POST);

然后我在iOS中打印结果

-(void)parseJson:(NSData*) data{
    NSString *myString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    NSError *jsonError = nil;
    NSDictionary* jsonObject= [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonError];
    NSLog(@"%@",myString);
}

这个问题是我得到空字符串..所以它意味着发布的数据没有被发送,这是10000%客观的c方面问题,我不知道为什么它在这个方法中我们只得到了setHttpBody与实际包含由&分隔的键和值的字符串但是这些数据没有发送,你可以看到。所以我做错了什么?请告诉别人

1 个答案:

答案 0 :(得分:0)

Http body必须是NSData类型。试试下面的代码

NSString* stringData = @"tag=hello&username=yo&something=something";
NSData* data = [stringData dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:data];