如何用curl向指定地址POST一个JSON格式的数据

昨天的一个任务,用POST 方式向一个指定的URL推送数据。以前都用的数组来完成这个工作。

现在要求用json格式。感觉应该是一样的。开写。

<?php
$post_url = "http://news.php";
$post_data = json_encode($output_news);//$output_news处理好的数组
$ch = curl_init();//初始化
curl_setopt($ch, CURLOPT_TIMEOUT, '30');//超时时间
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Keep-Alive: 300','Connection: keep-alive')) ;
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.4; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2)');
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_URL,$post_url);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post_data);
$contents = curl_exec($ch);
if(curl_errno($ch)){//出错则显示错误信息
print curl_error($ch);
}
curl_close($ch);

返回栏目页:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/script/

承接页用$_POST接收,打印了一下发现是空的。上网搜索了一下发现PHP默认只识别application/x-www.form-urlencoded标准的数据类型。

修改头信息也没有结果。。。

只能通过以下方式获得数据
<?php
//第一种方法
$news    = $GLOBALS['HTTP_RAW_POST_DATA'];
//第二种方法
$news      =    file_get_contents("php://input");

  最后修改了修改了数据才能接收到。修改结果

<?php
curl_setopt($ch,CURLOPT_POSTFIELDS,"news=".$post_data);
?>
这样承接页就用$_POST就可以接收到数据。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数组
, post
, 数据
, 推送
, 格式
一个
curl post json、php curl post json、curl post json body、libcurl post json、linux curl post json,以便于您获取更多的相关知识。

时间: 2024-08-04 01:16:09

如何用curl向指定地址POST一个JSON格式的数据的相关文章

遍历-一个json格式的字符串,在转换为数组时出现问题

问题描述 一个json格式的字符串,在转换为数组时出现问题 [{"id":"17","name":"w","sex":"a","age":"1"},{"id":"23","name":"a","sex":"e","age

如何使用volley发送一个json格式的String?

问题描述 如何使用volley发送一个json格式的String? 有一个连接:http://xxx.xxx.xxx.xxx/json/reply/GetUnCheckOutShopInfosDto 然后有一个json格式的String,需要发送出去: 注意,这里的参数只有一个json格式的String,不是Map类型的参数,所以不能使用key=value形式的数据发送模式. 请问,如何处理? 解决方案 有一个连接:http://xxx.xxx.xxx.xxx/json/reply/GetUnC

vs2008-MFC,打开一个.BIN文件,怎么修改指定地址中的数据?

问题描述 MFC,打开一个.BIN文件,怎么修改指定地址中的数据? 例如: 00000000h:11 22 33 44 .......... 怎么指定地址?怎么修改数据11为CC? 小弟新手 勿喷!谢谢大家,最好写代码教小弟

cocos2d x-Cocosd-x如何用curl如何获取天气

问题描述 Cocosd-x如何用curl如何获取天气 如题求解,最好用curl,如果有其他方法也可以,越详细越好,Cocos2d-x版本为3.5,谢了 解决方案 你只要找到一个有提供天气信息的网站,curl就可以提交http请求获取返回的数据,然后你再解析获取对应内容.

基于PHP CURL获取邮箱地址的详解_php实例

CURL可谓居家旅行必备之杀人良药,为何如此形容?就是因为他好用方便能实现页面抓取模拟登录采集等一系列功能.记得第一次接触CURL的时候是要实现完成从邮箱用户列表的抓取.当时为了赶进度没有细细研究只是网上找了一些资料实现了功能.现在把当初的代码整理一下功能依旧能用 复制代码 代码如下: <?php  error_reporting ( 0 );  set_time_limit ( 0 );  header ( "Content-Type: text/html; charset=GB2312

php使用curl下载指定大小的文件实例代码

php中使用基于libcurl的curl函数,可以对目标url发起http请求并获取返回的响应内容.通常的请求方式类似如下的代码: public function callFunction($url, $postData, $method, header='') { $maxRetryTimes = 3; $curl = curl_init(); /******初始化请求参数start******/ if(strtoupper($method) !== 'GET' && $postData

PHP curl伪造IP地址和header信息代码实例

  这篇文章主要介绍了PHP curl伪造IP地址和header信息代码实例,本文给出服务器端和客户端实现代码,提供伪造功能和服务器端检测代码,需要的朋友可以参考下 curl虽然功能强大,但是只能伪造$_SERVER["HTTP_X_FORWARDED_FOR"],对于大多数IP地址检测程序来说,$_SERVER["REMOTE_ADDR"]很难被伪造: 首先是client.php的代码 代码如下: $headers['CLIENT-IP'] = '202.103.

js-如何用CSS或者JS隐藏这样一个标签,&amp;amp;lt;label for=&amp;amp;quot;notebutton&amp;amp;quot;&amp;amp;gt;VJSP批注模式&amp;amp;lt;/label&amp;amp;gt;

问题描述 如何用CSS或者JS隐藏这样一个标签,<label for="notebutton">VJSP批注模式</label> 完整形式 VJSP批注模式 解决方案 没人知道吗,真心求教啊

验证码-php中如何用curl模拟http头信息进行模拟登陆并获取信息

问题描述 php中如何用curl模拟http头信息进行模拟登陆并获取信息 最好有带 验证码的,不一定要curl 其他也行 不过需要模拟http 信息 这个问题我一直都不太懂 能有个经典的例子参考下吗 解决方案 http://www.helloweba.com/view-blog-253.html 解决方案二: php curl模拟登陆PHP使用curl模拟登陆php使用curl模拟用户登陆