iPhone- 在 POST 中将 JSON 对象发送到 PHP 服务器并从服务器获取响应
Posted
技术标签:
【中文标题】iPhone- 在 POST 中将 JSON 对象发送到 PHP 服务器并从服务器获取响应【英文标题】:iPhone- Send JSON Object to PHP server in POST and get response from server 【发布时间】:2012-04-14 15:34:36 【问题描述】:我正在尝试将 JSON 对象从我的 iphone 发送到 php 服务器
服务器将解码它做一些功能,然后用 JSON 重播回 iphone。
我已经设置了服务器,但我不确定我需要使用什么方法连接到 php 服务器(使用 POST 方法)以及 iphone 将如何从服务器获取响应。
【问题讨论】:
【参考方案1】:这是您的代码享受
NSString *urlString = @"你的网址";
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSMutableData *body = [NSMutableData data];
NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"];
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
[request addValue:contentType forHTTPHeaderField:@"Content-Type"];
[body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:imageData]];
[body appendData:[[NSString stringWithString:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
// Text parameter1
// NSString *param1 = @"parameter text";
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"name\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:param1] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
// Another text parameter
// NSString *param2 = @"Parameter 2 text";
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"desc\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:param2] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
// close form
[body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
// set request body
[request setHTTPBody:body];
像上面的代码一样,你可以使用 HTTP post 方法发送多个值。
【讨论】:
感谢您的帮助,但是如何从服务器获取响应,iphone 将如何捕获它?【参考方案2】:检查这个以获取 POSTing 数据: iPhone sending POST with NSURLConnection
如何在 Cocoa 中拥有 JSON 对象?您必须以某种方式将您拥有的任何数据转换为 JSON,将其发送到服务器,然后 parse 得到答案。
【讨论】:
以上是关于iPhone- 在 POST 中将 JSON 对象发送到 PHP 服务器并从服务器获取响应的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Go 中将 JSON 对象数组转换为具有默认值的结构数组?
如何在 symfony2 中将 json 转换为 php 对象?
如何在 Spring Boot 中将嵌套的 JSON 对象映射为 SQL 表行
无法在 asp.net mvc 4 中将 JSON 对象映射到 JqGrid