2017-06-17 10 views
-1

これは私が試しているリクエストです。しかし、URLはブラウザの& POSTMANでは動作しますが、PHPのcurlやコマンドラインでは返りません。郵便配達員で働いていて、PHPのカールやコマンドラインでURL要求がありません。

$curl = curl_init(); 

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://www.walmart.com/header?mobileResponsive=true", 
    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", 
     "postman-token: 04275e89-412a-edbf-a63d-d6ebe5c3c126" 
    ), 
)); 

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

curl_close($curl); 

if ($err) { 
    echo "cURL Error #:" . $err; 
} else { 
    echo $response; 
} 

あなたは-vと冗長モードで試す場合は、リクエストがHTTPからHTTPSにリダイレクトされていることがわかります、コマンドラインから

curl --request GET \ 
    --url 'http://www.walmart.com/header?mobileResponsive=true' \ 
    --header 'cache-control: no-cache' \ 
    --header 'postman-token: 301d71b1-fde5-a66f-2433-ed6baf9c8426' 

おかげ

答えて

0

を同じURLを試してみてください:

curl -v http://www.walmart.com/header?mobileResponsive=true 

* Trying 23.200.157.25... 
* Connected to www.walmart.com (23.200.157.25) port 80 (#0) 
> GET /header?mobileResponsive=true HTTP/1.1 
> Host: www.walmart.com 
> User-Agent: curl/7.43.0 
> Accept: */* 
> 
< HTTP/1.1 301 Moved Permanently 
< Accept-Ranges: bytes 
< Content-Length: 54 

httpsの場所を使用してください:

curl "https://www.walmart.com/header?mobileResponsive=true" 

それとも、新しい場所での使用-L--location)で新しい要求を実行するためにカールしたい場合:

curl -L "http://www.walmart.com/header?mobileResponsive=true" 

注:

  • あなたが-X/--requestを必要としない、デフォルト方法はGET
  • レスポンスを取得するために郵便番号のヘッダーは不要です
  • あなたのPHPコードで

、同じことが適用されます。

<?php 

$curl = curl_init(); 

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.walmart.com/header?mobileResponsive=true", 
    CURLOPT_RETURNTRANSFER => true 
)); 

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

curl_close($curl); 

if ($err) { 
    echo "cURL Error #:" . $err; 
} else { 
    echo $response; 
} 

?> 
関連する問題