Php curl请求返回';405不允许';,还有其他刮削方法吗?
我使用的是php curl,我的代码适用于其他网站,但当我请求此urlPhp curl请求返回';405不允许';,还有其他刮削方法吗?,php,curl,web-scraping,http-status-code-405,Php,Curl,Web Scraping,Http Status Code 405,我使用的是php curl,我的代码适用于其他网站,但当我请求此urlhttps://i.local.ch/#q?q=manager&origin=&rid=ac8EV&sort=relevance它返回: 405不允许 nginx 注意:SSl在我的域上处于活动状态 include "simple_html_dom.php"; $url="https://i.local.ch/#q?q=manager&origin=&rid=ac8EV&sort=relevance";
https://i.local.ch/#q?q=manager&origin=&rid=ac8EV&sort=relevance
它返回:
405不允许
nginx
注意:SSl在我的域上处于活动状态
include "simple_html_dom.php";
$url="https://i.local.ch/#q?q=manager&origin=&rid=ac8EV&sort=relevance";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
$info = curl_getinfo($ch);
print_r( $info );
echo var_dump($server_output);
当web服务器不允许HTTP方法用于请求的URL时,会导致HTTP 405错误 从浏览器发出相同的请求并检查请求标题。确保在发出请求时使用了正确的方法get、post或put。还要检查是否有任何附加的头随请求一起发送,因为某些URL只允许来自ajax请求,您可以通过在请求中添加适当的头来实现这一点 您可以使用下面的方法发送其他标题
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
"Accept-Charset" => "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
"Keep-Alive" => "115",
"Connection" => "keep-alive",
"X-Requested-With" => "XMLHttpRequest"
));
当web服务器不允许HTTP方法用于请求的URL时,会导致HTTP 405错误 从浏览器发出相同的请求并检查请求标题。确保在发出请求时使用了正确的方法get、post或put。还要检查是否有任何附加的头随请求一起发送,因为某些URL只允许来自ajax请求,您可以通过在请求中添加适当的头来实现这一点 您可以使用下面的方法发送其他标题
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
"Accept-Charset" => "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
"Keep-Alive" => "115",
"Connection" => "keep-alive",
"X-Requested-With" => "XMLHttpRequest"
));
你确定它应该是
POST
而不是GET
,因为你实际上没有发送任何数据吗?谢谢回复:我有40个URL用于这个网站。那么我需要发送任何数据吗?“我需要发送任何数据吗”-我们无法回答。我们不知道那个网站。我的意思是,如果您不同时传递任何数据(如发布表单或类似内容),那么使用POST
访问页面并不常见。因此,如果您只想获取页面,通常通过get
-请求完成。“405-不允许使用方法”表示您无法使用POST
请求访问该页面。您确定它应该是POST
而不是GET
,因为您实际上没有发送任何数据吗?谢谢回复:我有40个URL用于同一个网站。那么我需要发送任何数据吗?“我需要发送任何数据吗”-我们无法回答。我们不知道那个网站。我的意思是,如果您不同时传递任何数据(如发布表单或类似内容),那么使用POST
访问页面并不常见。因此,如果您只想获取页面,通常通过get
-请求完成。“405-方法不允许”表示您无法使用POST
-请求访问该页面。