Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GET-curl请求仅在postman中有效,而在php中无效_Php_Curl - Fatal编程技术网

GET-curl请求仅在postman中有效,而在php中无效

GET-curl请求仅在postman中有效,而在php中无效,php,curl,Php,Curl,我试图获得html作为响应,但它只在postman中有效,而在php中无效。在php中,我得到了不同的回答,比如“出了点问题…” 我错过了什么 以下是代码: $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://www.avnet.com/shop/SearchDisplay?searchTerm=LMK316BJ476ML-T&countryId=apac&defla

我试图获得html作为响应,但它只在postman中有效,而在php中无效。在php中,我得到了不同的回答,比如“出了点问题…”

我错过了什么

以下是代码:

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://www.avnet.com/shop/SearchDisplay?searchTerm=LMK316BJ476ML-T&countryId=apac&deflangId=-1&storeId=715839038&catalogId=10001&langId=-1&sType=SimpleSearch&resultCatEntryType=2&searchSource=Q&searchType=100&avnSearchType=all",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Cache-Control: no-cache"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
邮递员回应

php响应


提前谢谢

我研究了CURLOPT_HTTPHEADER,发现站点正在验证两个Header,它们是用户代理和接受语言。我正确地发送了它,它工作了。请在下面找到标题

CURLOPT_HTTPHEADER => array(
"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",
"Accept-Language:en-US,en;q=0.5"
)

喜欢解决这个问题。

邮递员是否正在发送用户代理标头?不,这是我从邮递员那里复制并在php脚本中使用的相同代码。您是否尝试执行
curl
request from命令?因为当您从命令执行
curl
请求时,您将得到与您现在得到的“出错”相同的响应。您是否在postman中单独执行此url?这可能是因为以前保存的cookie值?我对原始问题的第一个评论是用户-agent@Dale这不是我的问题:)。我是一个贡献者。它也希望接受语言。哦,是的!向朋友道歉/走开embaressment@Dale你为什么不给我投票支持这件好作品呢?我很抱歉@Dale,我确实尝试过用用户代理发送请求,但没有成功。如果邮递员发送了任何标题,我也尝试过查看,但除了缓存控制之外,找不到任何标题。