首页 > php代码 > php curl post数据的问题

php curl post数据的问题

 
今天在做一个api增量的功能的时候出现了一个特别奇怪的问题。我用curl 想tomcat post数据的时候,tomcat竟然报错,所我post的数据
没有正确或得。但是,我用curl post给我自己写的一个页面,就可以在$_post数组中获得数据。
为什么会出现这种问题那?
原因是在构建post 数据的数量出现问题。。。
1 function api_notice_increment($url, $data) 2 { 3     $ch = curl_init();         4     curl_setopt($ch, curlopt_header,0); 5     curl_setopt($ch, curlopt_returntransfer, 1); 6  7     curl_setopt($ch, curlopt_url, $url); 8     curl_setopt($ch, curlopt_post, 1); 9     curl_setopt($ch, curlopt_postfields, $data);10     $lst['rst'] = curl_exec($ch);11      $lst['info'] = curl_getinfo($ch);12     curl_close($ch);13     return $lst;14 }15     $url = "http://localhost/test/post.api.php教程?app=test&act=testact";16     $data = array (17   'goods_id' => '1010000001224',18   'store_id' => '20708',19   'status' => 'goodsdownshelf',20 );
//post.api.php的代码
<?phperror_log(var_export($_post,1),3,'d:/post.txt');


执行上面的代码,在我的d:/生成的post.txt文件,其内容如下:
array (
  'goods_id' => '1010000001224',
  'store_id' => '20708',
  'status' => 'goodsdownshelf',
)
说明post的数据可以正常的获得。
修改上的代码
1 <?php 2  function api_notice_increment($url, $data) 3 { 4     $ch = curl_init();         5     curl_setopt($ch, curlopt_header,0); 6     curl_setopt($ch, curlopt_returntransfer, 1); 7  8     curl_setopt($ch, curlopt_url, $url); 9     curl_setopt($ch, curlopt_post, 1);10     $data = http_build_query($data);11     curl_setopt($ch, curlopt_postfields, $data);12     $lst['rst'] = curl_exec($ch);13      $lst['info'] = curl_getinfo($ch);14     curl_close($ch);15     return $lst;16 }17     $url = "http://localhost/test/post.api.php?app=test&act=testact";18     $data = array (19   'goods_id' => '1010000001224',20   'store_id' => '20708',21   'status' => 'goodsdownshelf',22 );23 24 25     api_notice_increment($url,$data);


只是在执行 curl_setopt($ch, curlopt_postfields, $data);之前执行下$data = http_build_query($data);操作。
删除d:/post.txt文件
再次运行。
再次打开d:/post.txt文件,其内容如下:
array (
  'goods_id' => '1010000001224',
  'store_id' => '20708',
  'status' => 'goodsdownshelf',
)
如果不将$data 进行http_build_query的话,java代码就不能获得post的数据,http_build_query以后就可以正常的获得了。

永久链接:http://www.phprm.com/code/37884.html

转载随意!带上文章地址吧。

标签:curl_setopt

相关文章

发表留言