-(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与实际的字符串,其中包含键和值由&分隔但是你发现的数据并没有被发送.所以我做错了什么?请告诉别人
解决方法 http正文必须是NSData类型.试试下面的代码Nsstring* stringData = @"tag=hello&username=yo&something=something";NSData* data = [stringData dataUsingEnCoding:NSUTF8StringEnCoding];[request sethttpBody:data];总结
以上是内存溢出为你收集整理的ios – 目标c请求不发送数据全部内容,希望文章能够帮你解决ios – 目标c请求不发送数据所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)