【问题标题】:Pass Params in Curl Request在 curl 请求中传递参数
【发布时间】:2020-12-22 20:04:22
【问题描述】:

我尝试使用终端的 curl 请求,它正在工作,但是当我将该 curl 请求转换为 php 代码时,一个传递的参数不起作用。

终端卷曲请求:

curl --insecure "https://www.zohoapis.in/phonebridge/v3/clicktodial" -X POST -d "clicktodialuri=$clicktodialurl&clicktodialparam=[{'name':'fromnumber','value':'555'}]&zohouser=123456" -H "Authorization: Zoho-oauthtoken 1000.aedb399e2389cfacef60f965af052cbf" -H "Content-Type: application/x-www-form-urlencoded"

回应:

{"message":"ASTPP Clicktodial functionality has been enabled","status":"success","code":"SUCCESS"}

PHP 代码:

$zohouser = '6000';

            $access_token = '1000.c3c1107b635f1f5b257d831677e077d2';
            $cURL = "https://www.zohoapis.in/phonebridge/v3/clicktodial?clicktodialuri=$click_to_dial&clicktodialparam=[{'name':'fromnumber','value':'555'}]&zohouser=$zohouser";

            
            $curl = curl_init();

            curl_setopt_array($curl, array(
                CURLOPT_URL => $cURL,
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => "",
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 30,
                CURLOPT_SSL_VERIFYPEER => false,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => "POST",
                CURLOPT_HTTPHEADER => array(
                "Authorization: Zoho-oauthtoken " . $access_token,
                "Content-Type: application/x-www-form-urlencoded",
                "cache-control: no-cache"
                ),
            ));

            $response = json_decode(curl_exec($curl));

            $err = curl_error($curl);
print_r($err);
            curl_close($curl);
print_r($response);exit;

在运行这个 php curl 请求期间没有得到任何响应或错误。 你能帮我如何在 php curl 请求中将字符串作为参数传递。

【问题讨论】:

  • 如果这些是您真正的身份验证凭据,您需要立即更改它们。
  • 那不是有效的凭证,zoho 凭证将在 60 秒后过期。

标签: php curl zoho


【解决方案1】:

参考这个post 并使用链接的tool 我们最终得到以下代码。由于我自己无法对此进行测试,因此我无法保证我的答案。看起来您可能缺少 curl 发布选项“curl_setopt($ch, CURLOPT_POST, 1);”您可以使用它来代替您使用的选项“CURLOPT_CUSTOMREQUEST => "POST""。

// Generated by curl-to-PHP: http://incarnate.github.io/curl-to-php/
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://www.zohoapis.in/phonebridge/v3/clicktodial');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "clicktodialuri=$clicktodialurl&clicktodialparam=[{'name':'fromnumber','value':'555'}]&zohouser=123456");

$headers = array();
$headers[] = 'Authorization: Zoho-oauthtoken 1000.aedb399e2389cfacef60f965af052cbf';
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);

【讨论】:

    【解决方案2】:
    $strURL= "https://www.zohoapis.in/phonebridge/v3/clicktodial";
    
    
    $arrHeader= array(
        'Authorization:Zoho-oauthtoken 1000.aedb399e2389cfacef60f965af052cbf'
     );
    
     $params= array(
         
    "clicktodialparam"=>"[{\"name\":\"fromnumber\",\"value\":\"555\"}]",
    "authorizationparam"=>"{\"name\":\"X-Auth-Token\",\"value\":\"1000.aedb399e2389cfacef60f965af052cbf\"}",
    "clicktodialuri" => "$click_to_dial",
    "zohouser" => "123456"
    
    
    
    );
    
    
    $ch= curl_init();
    
    curl_setopt_array($ch,array(
        CURLOPT_URL =>$strURL,
        CURLOPT_POST => 1,
        CURLOPT_HTTPHEADER => $arrHeader,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_CONNECTTIMEOUT => 0,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_POSTFIELDS => http_build_query($params)
        
    
    ));
    
    
    $strResponse= curl_exec($ch);
    
    print_r($strResponse);
    
    echo curl_error($ch);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多