php - 在 CURL 中发送 APi 密钥和密钥
问题描述
我正在尝试将下面的行转换为与 PHP 一起使用,同时还学习如何使用 CURL!
$ curl -X POST -d 'key=YOUR_KEY&secret=YOUR_SECRET' "https://api.example.co.uk/authenticate" -H "Content-Type: application/x-www-form-urlencoded"
Bellow 是我到目前为止所拥有的,但是我不断收到 HTTP ERROR 403 UnauthorizedException 访问服务错误,所以我认为密钥和秘密没有被正确发送。
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.example.co.uk/authenticate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\"key\": \"MYKEY\",\"secret\": \"MYSECRET\"}",
CURLOPT_HTTPHEADER => array(
"content-type: application/x-www-form-urlencoded"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
解决方案
使用此工具可以节省大量时间 - https://incarnate.github.io/curl-to-php/
生成了这个:
// Generated by curl-to-PHP: http://incarnate.github.io/curl-to-php/
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.example.co.uk/authenticate');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "key=YOUR_KEY&secret=YOUR_SECRET");
$headers = array();
$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);
推荐阅读
- node.js - 节点js中出现UnhandledPromiseRejectionWarning?
- python - 无法打开的 PDF 下载问题
- c - 如何使 scanf 不跳过输入?
- r - 格式化表中的分组标题
- azure - Azure 应用中的 HTTP 协议 (AADSTS500117)
- unreal-engine4 - 虚幻引擎中的 LocalizationDashboard 错误
- c - 按字母顺序附加节点以创建链表。无法让节点链接(C 程序)
- python - freeze_graph 和 write_graph 有什么区别?
- node.js - 如何从外部获取套接字中变量的值?
- vue.js - Vue.js 通过模态传递变量