我们想从 linux 终端与我们使用 curl 的第 3 方 API 进行通信。curl 是 - curl -X POST \ \ -H 'Authorization: Bearer' \ -H 'Content-Type: application/json'当我们触发这个 curl 时,我们会得到预期的响应。但是,当我们尝试从 PHP 脚本执行此操作时,我们会收到错误消息 - HTTP ERROR 500PHP代码片段是 -<?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,'');curl_setopt($ch, CURLOPT_VERBOSE,true);$headers = array();$headers[] = 'Authorization: Bearer <token>';$headers[] = 'Content-Type: application/json';curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);$result = curl_exec($ch);echo $result;if (curl_errno($ch)) { echo 'Error:' . curl_error($ch);}curl_close($ch);?>当详细模式打开时,收到的响应是 -* Trying <IP>...* Connected to <URL> (<IP>) port 443 (#0)* ALPN, offering http/1.1* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH* successfully set certificate verify locations:* CAfile: /etc/ssl/certs/ca-certificates.crt CApath: /etc/ssl/certs* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256* ALPN, server did not agree to a protocol* Server certificate:* subject: OU=Domain Control Validated; CN=* <domain>* start date: Dec 17 10:41:01 2017 GMT* expire date: Dec 17 10:41:01 2020 GMT* subjectAltName: <URL> matched* issuer: C=US; ST=Arizona; L=Scottsdale; O=GoDaddy.com, Inc.; OU=http://certs.godaddy.com/repository/; CN=Go Daddy Secure Certificate Authority - G2* SSL certificate verify ok.> POST /app/auth HTTP/1.1Host: <URL>Accept: */*Authorization: Bearer <Token>Content-Type: application/jsonExpect: 100-continue请注意,在此处发布问题时,我已经替换了实际的 URL、IP 和令牌。为了确保 PHP curl 没有问题,我们使用 curl-to-PHP 代码生成器实用程序来生成代码 ( http://incarnate.github.io/curl-to-php/ )。有人可以帮助我,让我知道可能出了什么问题。
1 回答

缥缈止盈
TA贡献2041条经验 获得超4个赞
为了避免«500 error»(例如),请务必:
set proper "Referer: " header if needed, with
curl_setopt(CURLOPT_REFERER, 'ref page');
set proper "User-Agent: " header, with
curl_setopt(CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)')
- 1 回答
- 0 关注
- 203 浏览
添加回答
举报
0/150
提交
取消