【www.gdgbn.com--今天更新】

  今天在做一个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的代码
error_log(var_export($_post,1),3,"d:/post.txt");
执行上面的代码,在我的d:/生成的post.txt文件,其内容如下: array (
  "goods_id" => "1010000001224",
  "store_id" => "20708",
  "status" => "goodsdownshelf",
) 说明post的数据可以正常的获得。 修改上的代码
1  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以后就可以正常的获得了。 <script type=text/网页特效> if ($ != jquery) { $ = jquery.noconflict(); } var islogined = false; var cb_blogid = 67614; var cb_entryid = 2000262; var cb_blogapp = "ainiaa"; var cb_bloguserguid = "1258d391-fb2b-df11-ba8f-001cf0cd104b"; var cb_entrycreateddate = "2011/3/30 19:19:00"; </script>

本文来源:http://www.gdgbn.com/jintiangengxin/29699/