簡體   English   中英

CURL錯誤401-PHP版本是否會導致此問題?

[英]CURL Error 401 - Does PHP version cause this problem?

我有以下代碼:

$body = "<SOAP-ENV:Envelope>".$data."</SOAP-ENV:Envelope>";
$ch = curl_init($FD_Add);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml"));
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "WS******._.1:********");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSLCERT, DIR_ROOT."ABCDEFG/Certs/WS******._.1.pem");
curl_setopt($ch, CURLOPT_SSLKEY, DIR_ROOT."ABCDEFG/Certs/WS******._.1.key");
curl_setopt($ch, CURLOPT_SSLKEYPASSWD, "ckp_***********");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
if($test_env){echo 'The result of your request is:<RESULT>'.$result.'</RESULT>br/>' ;}
curl_close($ch);

響應是錯誤401 HTTP需要身份驗證。 我已驗證用戶ID和密碼正確無誤。 我首先想知道的是,如果我在運行PHP〜v時不支持CULROPT_AUTH,PHP版本是否會導致此錯誤。 3.4我所閱讀的內容不支持此選項。

有人知道這可能會帶來麻煩嗎?

您可能會自己發出基本的auth標頭來偽造它:

$auth_header = "Authorization: Basic " . base64_encode("$user:$pass");
curl_setopt($ch, CURLOPT_HTTP_HEADER, $auth_header);

但這僅適用於Curl 7.10.3及更高版本。 您的石頭時代的PHP最有可能使用同樣石頭時代的CURL。

真的... PHP 3.4相當於從Flintstones購買的汽車行駛。 您應該升級到更現代的產品,例如Model-T。那些無馬車的確令人印象深刻。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM