php上传json给服务器,如何向php服务器发送数据为json的post请求

需要向@"http://222.44.51.34/jienu_serv/serv.php"发送一个请求,数据为@"{\"application\":\"UpdataVersion\",\"os\":\"ios\",\"display\":\"480*960\"}"; 代码如下:

-(RemoteReturn *)versionUpdata{

NSURL *url=[NSURL URLWithString:@"http://222.44.51.34/jienu_serv/serv.php"];

ASIHTTPRequest *request=[ASIHTTPRequest requestWithURL:url];

NSMutableData *bodyData=[NSMutableData data];

NSString *bodyDataStr=@"{\"application\":\"UpdataVersion\",\"os\":\"ios\",\"display\":\"480*960\"}";

[bodyData appendData:[bodyDataStr dataUsingEncoding:NSUTF8StringEncoding]];

[request setRequestMethod:@"POST"];

//[request addRequestHeader:@"Content-Type" value:@"application/json"];

[request appendPostData:bodyData];

[request start];

NSString *response=[request responseString];

NSLog(@"===---------%@",response);

RemoteReturn *remote=[[RemoteReturn alloc] initWithString:response];

return remote;

}

但是发送请求总是错误,错误信息如下:

2012-01-11 12:53:04.544 jienu[3326:1540b] [STATUS] Starting synchronous request

2012-01-11 12:53:04.548 jienu[3326:1540b] [CONNECTION] Request will not use a persistent connection

2012-01-11 12:53:04.549 jienu[3326:15f03] [CONNECTION] Request will not use a persistent connection

2012-01-11 12:53:04.549 jienu[3326:1540b] [STATUS] Request : Failed

2012-01-11 12:53:04.550 jienu[3326:1540b] [CONNECTION] Request #(null) failed and will invalidate connection #(null)

大师看下,该怎么解决

你将bodyData转换成nsstring类型,而不是post一个数组。 你只要根据它的接口,加数据,设置为正确的头就行啦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 PHP 的 cURL 库来发送 POST 请求并传递 JSON 数据。以下是一个示例代码: ```php $url = 'http://example.com/api'; // API 的 URL $data = array('name' => 'John', 'age' => 30); // 要发送的 JSON 数据 $ch = curl_init($url); // 初始化 cURL curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 设置返回结果为字符串 curl_setopt($ch, CURLOPT_POST, true); // 设置请求POST curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); // 设置 POST 数据JSON 格式 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); // 设置请求头中的 Content-Type 为 JSON $response = curl_exec($ch); // 发送请求并获取响应 curl_close($ch); // 关闭 cURL if ($response === false) { // 请求失败 echo 'Error: ' . curl_error($ch); } else { // 请求成功 echo $response; } ``` 在上面的代码中,我们使用了 `curl_setopt()` 函数来设置 cURL 的选项,其中: - `CURLOPT_RETURNTRANSFER`:设置为 `true`,表示将结果返回为字符串,而不是直接输出到页面上。 - `CURLOPT_POST`:设置为 `true`,表示这是一个 POST 请求。 - `CURLOPT_POSTFIELDS`:设置 POST 数据,使用 `json_encode()` 函数将数组转换为 JSON 格式的字符串。 - `CURLOPT_HTTPHEADER`:设置请求头中的 Content-Type 为 application/json,告诉服务器我们发送的是 JSON 数据。 最后,使用 `curl_exec()` 函数发送请求并获取响应,然后使用 `curl_close()` 函数关闭 cURL。如果请求失败,可以使用 `curl_error()` 函数获取错误信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值