【问题标题】:403 forbidden is returned while executing php curl执行 php curl 时返回 403 禁止
【发布时间】:2016-06-24 05:35:50
【问题描述】:

我正在使用 PHP curl 向 zoho crm 发送数据,但它返回“403 禁止”错误。现在的问题是,我使用单个 curl 函数在该页面上发送多个 xml,当我将数据发送到帐户或潜在客户时,它被正确发送并给我一个成功响应,但是当我尝试将数据发送给联系人时,它是给我一个错误,我想说的是相同的 curl 在上面工作正常并在同一个文件中给出错误,我的意思是如果 curl 有问题,为什么它会成功运行三次但不是第四次. 其次,当我将相同的代码放在 localhost 中时它工作正常,这意味着我的 xml 也很好,任何人都可以帮助我,我已经搜索了几十篇文章但没有任何帮助,这里是代码。

<?php
$auth = '************';
//creating new contact
$xml = "<Contacts>
<row no=\"1\">
<FL val=\"First Name\">James</FL>
<FL val=\"Last Name\">Franco</FL>
<FL val=\"Email\">test@test.com</FL>
<FL val=\"Department\">CG</FL>
<FL val=\"Phone\">0000</FL>
<FL val=\"Fax\">99999999</FL>
<FL val=\"Mobile\">99989989</FL>
<FL val=\"Assistant\">John</FL>
</row>
</Contacts>";
$agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13     (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13';

$p_true_url = "https://crm.zoho.com/crm/private/xml/Contacts/insertRecords?";
$p_true_query = "authtoken=" . $auth . "&scope=crmapi&newFormat=1&xmlData=" . $xml . "";

$p_true1 = curl_init();
curl_setopt($p_true1, CURLOPT_URL, $p_true_url);
curl_setopt($p_true1, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($p_true1, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($p_true1, CURLOPT_TIMEOUT, 60);
curl_setopt($p_true1, CURLOPT_POST, 1);
curl_setopt($p_true1, CURLOPT_USERAGENT, $agent);
curl_setopt($p_true1, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($p_true1, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($p_true1, CURLOPT_POSTFIELDS, $p_true_query);
$p_true_response = curl_exec($p_true1);
curl_close($p_true1);
print_r($p_true_response);

?>

【问题讨论】:

    标签: php curl zoho


    【解决方案1】:

    远程机器可能会阻止频繁的请求。 使用,

    curl_setopt($ch, CURLOPT_REFERER, 'URL'); 
    curl_setopt($ch, CURLOPT_FAILONERROR, 0);
    

    【讨论】:

    • 如果是频繁请求被阻塞的问题,那为什么其他 4 次都正常?在具有相同卷曲的同一页面中...?
    猜你喜欢
    • 2020-09-07
    • 2013-05-30
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 2011-05-31
    相关资源
    最近更新 更多