繁体   English   中英

将 curl 翻译成 php

[英]translate curl to php

我正在寻找一种使用 PHP 执行此操作的方法:

curl -X POST <url> -H 'Authorization: AccessKey <key>' -d "recipients=xxx" -d "originator=yyy" -d "body=zzz"

到目前为止,这是我想出的,但 api 唯一响应的是“假”:

//headers
$headers=array(
    'Authorization: AccessKey key',
);

//postfields
$postfields=array(
    'originator'=>'yyy',
    'recipients'=>array('xxx'),
    'body'=>'zzz',
);

$ch=curl_init();

curl_setopt_array(
    $ch,
    array(
        CURLOPT_URL=>'url',
        CURLOPT_HEADER=>true,
        CURLOPT_HTTPHEADER=>$headers,
        CURLOPT_POST=>true,
        CURLOPT_POSTFIELDS=>$postfields,
        CURLOPT_RETURNTRANSFER=>true,
    )
);

$data=curl_exec($ch);

curl_close($ch);

var_dump($data);

试试这个( https://incarnate.github.io/curl-to-php/ ):

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'url');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "recipients=xxx&originator=yyy&body=zzz");

$headers = array();
$headers[] = 'Authorization: AccessKey <key>';
$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);

您的代码看起来正确,所以我会添加一些错误日志来确定无响应的原因。 您可以使用curl_error()函数在$data为 false 时获取错误。

// fetch remote contents
if ( false === ( $data = curl_exec( $ch ) ) ) {
  // get the curl error
  $error = curl_error( $ch );
  var_dump( $error );                                           
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM