2017-12-13 24 views
2

PHPカールを実行しようとしていますGETドメインhttps://www.submarino.com.brです。私は403(禁止されている)を得ている。私はその後、私のPHPコードはバッシュPHP Curlリクエストレスポンス403 - 許可されていません

enter image description here

どれ

public function GetStatusHost(){ 
    $headers = Array(); 
    $headers[] = 'Host:www.submarino.com.br'; 
    $headers[] = 'Connection:keep-alive'; 
    $headers[] = 'Cache-Control:max-age=0'; 
    $headers[] = 'Upgrade-Insecure-Requests: 1'; 
    $headers[] = 'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'; 
    $headers[] = 'Accept-Language:pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7,es;q=0.6,pt-PT;q=0.5'; 
    $headers[] = 'Accept-Encoding:gzip, deflate, br'; 
    $headers[] = "If-None-Match:W/'5beff-TgqN41ZtNiOTyAH2bpA4lvYiKTE'"; 

    $ch  = curl_init($this->GetKeywordUrl()); 
    $tmp  = "/home/leilao/public_html/tmp/curl_cookie/cookie.txt"; 
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"); 
    curl_setopt($ch, CURLOPT_HTTPHEADER,$headers); 
    //curl_setopt($ch, CURLOPT_COOKIEJAR, $tmp); 
    //curl_setopt($ch, CURLOPT_COOKIEFILE,$tmp); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
    $result = curl_exec($ch); 
    $info  = curl_getinfo($ch); 
    curl_close($ch); echo $info['http_code']; exit; 
    return $info['http_code']; 
} 

URLで提供カール要求をコピーし、bashで実行し、同じ答えを得るためにクロム開発者に対しによりしようとしましたどのようにこの問題を解決するアイデア?ヘッダSomeHugeOAuthaccess_tokenThatIReceivedAsAStringを使用して

応答:

enter image description here

+0

もこれを使用することができます使用されていますここでそれを再現していない、あなたがipの禁止されているように見える、これは私のためにうまく動作します.. – hanshenrik

答えて

1

多分あなたのサイト(Host:www.submarino.com.brは)メソッドにアクセスするための権限を提供するために、認証資格情報を使用します。 だから、特定の資格情報を使用して、この行を追加しよう:

curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($ch, CURLOPT_USERPWD, "username:password"); //Your credentials goes here 

または 場合がありbase64string認証は、その後、あなたは私ができる

$header[] = "Authorization: Bearer $access_token"; 

または

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization', 'OAuth ' . $atoken)); 
+0

ありがとう、私はパスワードとログインそれは動作しませんでしたし、ドメインはAPIによる検索のための資格情報を提供していません。 他のアイデアはありますか? –

+0

'$ header [] = '認証:OAuth SomeHugeOAuthaccess_tokenThatIReceivedAsAString'; '私のansで上記のコードを使わずにこれを追加しようとします。 –

+0

また、郵便配達のようなツールを使用して正確な問題を見つけることもできます。 –

関連する問題