以下脚本返回" HTTP / 1.1 401 Unauthorized"请求,但我不知道为什么。我知道,请求转到https,但我拒绝"选项" CURLOPT_SSL_VERIFYPEER" ..我认为,根本不是问题,是吗?
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$html_brand = "https://example.com/api/test";
$ch = curl_init();
$options = array(
CURLOPT_URL => $html_brand,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HEADER => TRUE,
CURLOPT_FOLLOWLOCATION => TRUE,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPAUTH => CURLAUTH_DIGEST,
CURLOPT_USERPWD => "user:pass",
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json; charset=utf-8'
)
);
curl_setopt_array( $ch, $options );
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ( $httpCode != 200 ){
echo "Return code is {$httpCode} \n"
.curl_error($ch);
echo "<pre>";
print_r($response);
} else {
echo "<pre>".htmlspecialchars($response)."</pre>";
}
curl_close($ch);
我认为,只有一个选项可以让卷发失踪..
响应:
HTTP / 1.1 401未经授权 服务器:nginx 日期:2015年5月19日星期二18:52:26 GMT Content-Type:application / json 转移编码:分块 连接:保持活力 Keep-Alive:超时= 5 Www-Authenticate:Digest realm =&#34; REST-API&#34;,domain =&#34; /&#34;,nonce =&#34;&#34;,opaque =&#34;&#34 ;,algorithm =&#34; MD5&#34;,qop =&#34; auth&#34; 缓存控制:nocache,私有 变化:接受编码
HTTP / 1.1 400错误请求 服务器:nginx 日期:2015年5月19日星期二18:52:26 GMT Content-Type:application / json 转移编码:分块 连接:保持活力 Keep-Alive:超时= 5 缓存控制:nocache,私有 变化:接受编码
可能它有点愚蠢,但它是关于auth算法的东西 - md5?密码为纯文本,未经md5加密。
编辑:似乎,它不是关于MD5 - 在将密码编码为md5之后得到了相同的响应。ONE MORE编辑:好的,同样的客户端在HTTP层(以及另一个INSTANCE!)上工作得很好而不是HTTPS ..所以在HTTPS上有什么东西被打破了?
答案 0 :(得分:0)
我遇到了同样的问题,在我的情况下服务器有一个301重定向到带有双斜杠的url。在浏览器的地址栏中它是隐形的,当我检查服务器对浏览器的响应时,我意识到了这一点。