【发布时间】:2012-06-14 12:53:18
【问题描述】:
我正在尝试通过以下代码将 JSON 数据发送到 Web 服务器。由于某种原因,该请求似乎没有发出。我好像错过了什么? NSURLConnection (retStr) 的结果也总是空的?
NSDictionary *data = [NSDictionary dictionaryWithObject:@"test sending ios" forKey:@"value1"];
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:data options:kNilOptions error:&error];
NSURL *url = [NSURL URLWithString:@"http://webserveraddress"];
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url cachePolicy:nil timeoutInterval:60];
[req setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[req setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[req setValue:[NSString stringWithFormat:@"%d", [jsonData length]] forHTTPHeaderField:@"Content-Length"];
[req setHTTPMethod:@"POST"];
[req setHTTPBody:jsonData];
NSString *retStr = [[NSString alloc] initWithData:[NSURLConnection sendSynchronousRequest:req returningResponse:nil error:nil] encoding:NSUTF8StringEncoding];
【问题讨论】:
-
只是一个意见,您应该将 POST 变量发送到您的服务器并从中检索 json。特别是如果您通过 http 连接进行连接会更容易。更容易和更快。你可以简单地把 HTTPBody NSString stringWithFormat:@"var1=%@&var2=%@&var3=%@..." 和你在 php $_POST['var1'], $_POST['var2 '] 等等...
-
@NicolasManzini 你能给我一些示例代码吗?我尝试重新排列上面的代码并删除 NSJSONSerialization,但我的网络服务器上仍然没有收到任何 POST?我需要删除:[[NSString alloc] initWithData:[NSURLConnection sendSynchronousRequest:req returnedResponse:nil error:nil] encoding:NSUTF8StringEncoding]?
标签: objective-c xcode json