我们在一个PHP应用程序中使用curl HEAD请求来验证通用链接的有效性。我们只检查状态码,以确保用户输入的链接有效。所有网站的链接都成功了,除了LinkedIn。
虽然它在本地(Mac)似乎可以工作,但当我们尝试从任何Ubuntu服务器发出请求时,LinkedIn返回999状态代码。这不是API请求,只是像我们为每个其他链接所做的简单curl请求。我们尝试在几台不同的机器上和尝试改变用户代理,但没有成功。我该如何修改我们的curl,以便工作链接返回200?
样例HEAD请求:
curl -I --url https://www.linkedin.com/company/linkedin
Ubuntu机器上的样例响应:
HTTP/1.1 999 Request denied
Date: Tue, 18 Nov 2014 23:20:48 GMT
Server: ATS
X-Li-Pop: prod-lva1
Content-Length: 956
Content-Type: text/html
回应@alexandru-guzinschi的问题。我们尝试了掩盖用户代理。总结一下我们的实验结果:- Mac机器+Mac UA => 可以 - Mac机器+Windows UA => 可以 - Ubuntu远程机器+(未更改UA)=> 失败 - Ubuntu远程机器+Mac UA => 失败 - Ubuntu远程机器+Windows UA => 失败 - 位于Mac上的Ubuntu本地虚拟机+(未更改UA)=> 失败 - 位于Mac上的Ubuntu本地虚拟机+Windows UA => 可以 - 位于Mac上的Ubuntu本地虚拟机+Mac UA => 可以 所以现在我想他们会阻止任何未提供备用UA的cURL请求,也会阻止托管提供者?
从一个Ubuntu机器上使用PHP,还有其他方法可以检查链接到LinkedIn的链接是否有效或是否会导致其404页面吗?