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

iPhone 4 在 Web 视图中将 JSON 字符串传递给 Javascript

如何通过 HttpClient 在 POST 请求中将 JSON 数据作为正文发送