美好的一天。我正在尝试将简单的帖子数据发送到服务器。这是我如何做的代码。
-(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与实际包含由&分隔的键和值的字符串但是这些数据没有发送,你可以看到。所以我做错了什么?请告诉别人
答案 0 :(得分:0)
Http body必须是NSData类型。试试下面的代码
NSString* stringData = @"tag=hello&username=yo&something=something";
NSData* data = [stringData dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:data];