$url='http://localhost/api2/api.php';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
$output = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
var_dump($output);这样请求本地环境有json返回,把localhost改成远程服务器api地址返回404
远程服务器的api地址浏览器也是可直接打开的,这是什么原因

解决方案 »

  1.   

    浏览器可以,程序不可以,说明对方检测了浏览器相关的header
    自己抓包分析吧
      

  2.   

    抓包用chrome或者firefox+httpfox插件都可以
    如果抓了包也不会用我就很难解释了,搜索本版有关curl的帖子吧如果你的api不是直接敲入网址就能访问,我估计需要cookie
      

  3.   

    一般来说,你抓别人的东西,要伪造header的。使用chrome的开发者工具,看看浏览器访问的时候有什么
      

  4.   

    试试这个client,再不行的话,告诉我远程服务器api地址是什么。