美好的一天.我试图将简单的帖子数据发送到服务器.这是我如何做的代码.
-(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]; }
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与实际的字符串,其中包含键和值由&分隔但是你发现的数据并没有被发送.所以我做错了什么?请告诉别人
解决方法
Http正文必须是NSData类型.试试下面的代码
NSString* stringData = @"tag=hello&username=yo&something=something"; NSData* data = [stringData dataUsingEncoding:NSUTF8StringEncoding]; [request setHTTPBody:data];