Curl运行正常,但是PHP CURL错误

问题描述 投票:0回答:1

我们想与使用Linux终端curl的第三方API通信。卷曲是-curl -X POST \\-H'授权:承载'\-H'内容类型:application / json'

当我们发射此卷发时,我们将获得预期的响应。

但是,当我们尝试从PHP脚本执行此操作时,就会收到错误消息-HTTP错误500

PHP代码段是-

<?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.1
Host: <URL>
Accept: */*
Authorization: Bearer <Token>
Content-Type: application/json
Expect: 100-continue

< HTTP/1.1 500 Request failed.
< Cache-Control: must-revalidate,no-cache,no-store
< Content-Type: text/html;charset=iso-8859-1
< Date: Wed, 08 Jan 2020 04:39:23 GMT
< Content-Length: 252
< Connection: keep-alive
* HTTP error before end of send, stop sending
< 
* Closing connection 0
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title>Error 500 Request failed.</title>
</head>
<body><h2>HTTP ERROR 500</h2>
<p>Problem accessing /app/auth. Reason:
<pre>    Request failed.</pre></p>
</body>
</html>

[请注意,在此处发布问题时,我已经替换了实际的URL,IP和令牌。

为了确保PHP curl没有问题,我们使用curl-to-PHP代码生成器实用程序生成代码(http://incarnate.github.io/curl-to-php/

有人可以帮我,让我知道怎么了。

php curl php-curl
1个回答
0
投票

例如,要避免«500错误»,请确保:

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)');
© www.soinside.com 2019 - 2024. All rights reserved.