php curl为现有URL返回400

时间:2019-01-06 09:25:36

标签: php

我创建了一个函数来验证url是否存在,除了某些诸如soundcloud的URL,soundcloud的URL返回400之外,其他页面都存在的情况下,它仍然有效 网址中没有空格或任何特殊字符 我的代码是

$curl = curl_init($page_url);
        curl_setopt($curl, CURLOPT_NOBODY, true);
        curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, false);
        $result = curl_exec($curl);
        $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

var_dump ($result) //返回 true

var_dump ($statusCode) //返回 int(400)

我尝试使用

`CURLOPT_RETURNTRANSFER, TRUE`
`CURLOPT_FOLLOWLOCATION, TRUE`

但结果相同var_dump ($statusCode) //返回 int(400)

1 个答案:

答案 0 :(得分:1)

从技术上讲,状态码400(错误请求)并不意味着该页面不存在,这意味着您要访问的网站/ API希望用户/开发人员可以输入一些信息访问网站的用户无法提供的一种特定格式。

由于您尝试对网站(而不是API)进行CURL处理,因此建议您使用网络浏览器打开该网站,并检查该网站正常运行所需的任何cookie,并将这些cookie包含在您的CURL中请求。

编辑:

要在您的CURL中包含cookie,请使用CURLOPT_COOKIE CURL选项:

 curl_setopt($curl, CURLOPT_COOKIE, 'user=ellen; activity=swimming');

请记住,并非所有页面都应匿名浏览,某些网页可能要求您登录才能查看它们。