gpt4 book ai didi

php - curl 返回 404 错误

转载 作者:可可西里 更新时间:2023-10-31 22:10:34 25 4
gpt4 key购买 nike

我正在使用 cuRL 从远程服务器获取一些数据...响应采用 JSON 格式...这是我的代码:

$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER , 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch, CURLOPT_URL, 'http://www.myaddress.com/mypage.php');
curl_setopt($ch, CURLOPT_POSTFIELDS, array("id" => $id));
$return = curl_exec($ch);
curl_close($ch);

如果我在浏览器中访问链接,页面加载正常,但如果我通过 cuRL 访问,则返回 404 错误...

最佳答案

我可以猜到一些可以从服务器端检查的东西,以显示错误。

1) 正如其他答案中所述,请务必设置所有必要的 header ,您可以检查它们,例如由 firebug,如这里所示,

enter image description here

或者您可以通过 php get_headers 获取 header 功能。设置它使用

curl_setopt($ch, CURLOPT_HTTPHEADER, array("HeaderName: HeaderValue"));

2) 当您在浏览器中打开一个页面(不包括使用 post 方法提交的表单)时,它会发出一个 get 请求,而不是 post,因此如果在服务器端检查 $_GET,那么您的发帖请求将不会被考虑。

3) 如果您确定它应该是一个 post 请求(比如,它是一个表单提交),那么以下可能是一个问题:一些表单可以有隐藏字段,这又是正在服务器中检查,如果未设置,则会返回错误。因此,您应该查看表单的源代码并将它们(如果有的话)添加到您的发布参数中。

4)如果您要提交表单,请务必也设置提交按钮及其名称和值,因为与隐藏字段类似,这也可以被选中。

5) Cookie 也可能是个问题,因为浏览器默认有它,而 curl 没有。要能够设置和读取 cookie,请使用此代码

// set cookie 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);

// use cookie
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);

此处,$cookie_file cookie 文件的路径。不知道在linux还是mac,但是在windows一定要使用cookie文件的绝对路径。

6)另外,您可以通过

设置referer
curl_setopt($ch, CURLOPT_REFERER, 'http://www.myaddress.com/mypage.php');

编辑:如果是 ajax 请求,您可能需要添加一个 header X-Requested-With,其值为 XMLHttpRequest

关于php - curl 返回 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21001264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com