Can servers block curl requests?

后端 未结 4 820
谎友^
谎友^ 2020-12-01 01:30

I am working on ZOHO API and trying to update the record using cURL. I tried different cURL variations, but it always returns \"false\". But when I call the same URL using a

4条回答
  •  猫巷女王i
    2020-12-01 02:13

    Many web servers want to block HTTP requests forged by something else than a browser, to prevent bots abuses. If you want to simulate/pretend your request from a browser, you at least have to:

    1. Pass the exact same headers than your browsers (use ie Firebug to get them)

      curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
      
    2. Change the user agent (name of the browser)

      curl_setopt($ch, CURLOPT_USERAGENT, $agent);
      
    3. Enable cookies (for eg redirection and session handling)

      curl_setopt ($ch, CURLOPT_COOKIEJAR, $file);
      curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
      
    4. Add referers

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

    And pray you haven't missed anything!

提交回复
热议问题