2012-02-22 9 views
10

私はZOHO APIに取り組んでおり、CURLを使ってレコードを更新しようとしています。私は異なるCURLバリエーションを試しましたが、常に "false"を返します。しかし、私はブラウザを使用して同じURLを呼び出すと、それは動作します。
CURLリクエストをブロックする方法はありますか?そのURLをPOStを使って呼び出すことができる他の方法はありますか、GETでも可能ですか?私はほとんど2〜3日を過ごしました。あなたがZOHO APIのユーザーであれば、あなたのために働いたコードを私に見せてください。私が試したサーバはカール要求をブロックできますか?

最近のカールは以下の通りです:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
$data = curl_exec($ch); 
curl_close($ch); 

答えて

10

サーバはカールリクエスト自体をブロックできませんが、好きでないリクエストはブロックできます。サーバーが、あなたのカール要求が満足していないいくつかのパラメーターをチェックすると、異なる応答をする可能性があります。

大部分の場合、この動作の違いは、HTTP要求ヘッダーの有無(存在しない)と値によってトリガーされます。たとえば、サーバーはUser-Agentヘッダーが存在し、有効な値を持っているかどうかをチェックすることができます(他にも多くのことをチェックできます)。

ブラウザからのHTTP要求がどのようなものかを調べるには、FiddlerのようなHTTPデバッグプロキシ、またはブラウザの開発者ツールを使用します。あなたのカールの要求に独自のヘッダを追加するには

curl_setopt($ch, CURLOPT_HTTPHEADER, array('HeaderName: HeaderValue')); 
+0

ur文「あなたのカール要求が満足しないパラメータ」に同意しますが、公式の文書では何も言及しませんでした。もう1つ、HTTPS経由でAPIを呼び出す必要があります.CURLは内部的に管理しますか、HTTPSを処理するために何かを追加する必要がありますか? –

+0

@AmitPatil:はい、curlはHTTPSです。ZOHO APIについて実際には話すことはできません。私はそれを見たこともありません。 – Jon

+0

* "大部分の場合、この動作の違いは、HTTPリクエストヘッダーの存在(または不在)と値によってトリガーされます。" *最近のリクエスト偽装ブロッカーは、現在のものよりもずっとスマートです。 –

5

は、あなたの質問に答えるために「彼らはCURLの要求をブロックすることができます任意の方法はありますか?」:はい、実際にはUser-Agentヘッダーを読み取ってcURLリクエストを検出することがあります。

curl_setopt($ch, CURLOPT_USERAGENT, 'My user agent string!');に電話をかけてユーザーエージェントを変更することができます。

15

を使用する多くのWebサーバーは、ボットの侵害を防ぐために、ブラウザ以外の何かによって偽造HTTP要求をブロックします。 あなたがシミュレート/ブラウザからのリクエストをふりをしたい場合は、少なくともする必要があります:

  1. あなたのブラウザよりも正確に同じヘッダを渡し(それらを得るために、すなわちFirebugを使用)

    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    
  2. ユーザーエージェント(ブラウザの名前)

    curl_setopt($ch, CURLOPT_USERAGENT, $agent); 
    
  3. (例えばリダイレクトとセッション処理のための)クッキーを有効に変更する

    curl_setopt ($ch, CURLOPT_COOKIEJAR, $file); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); 
    
  4. リファラー

    curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com'); 
    curl_setopt($curl, CURLOPT_AUTOREFERER, true); 
    

そして、あなたが何かを見逃していない祈るを追加!

関連する問題