我正在使用一個API,需要一個API密鑰以curl調用的基本身份驗證方式發送。API需要一個編碼的API密鑰,我如何發送這個curl?
$json = "somedata";
$url = "http.server.com";
$key = "someKey";
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, $key);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/2.0");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = curl_exec($ch);
curl_close($ch);
我的回答是:
"Server error","data":{"details":"Invalid API key.
我知道密鑰本身是正確的,發送的捲曲請求不使用PHP時,它的工作原理。
我假設USERPWD不是正確的curlopt使用,哪一個是?
從文檔:
Base64編碼的字符串,從組合的用戶名生成:密碼 序列。
在我們的例子中,API密鑰被設置爲用戶名,並且密碼被設置爲空的 字符串。
例如,如果API密鑰等於toN8KzwcqVUxAI1RoPi5jyFJPkPlkDl9vF,
Base64編碼應在下面的字符串來執行: N8KzwcqVUxAI1RoPi5jyFJPkPlkDl9vF:
在這種情況下,發送到 該內容的授權報頭是 Basic TjhLendjcVZVeEFJMVJvUGk1anlGSlBrUGxrRGw5dkY6。
的可能的複製[我如何使用HTTP基本身份驗證使用PHP捲曲的請求?](HTTP:/ /stackoverflow.com/questions/2140419/how-do-i-make-a-request-using-http-basic-authentication-with-php-curl) – dgig
你可以添加一些API的細節告訴你把鑰匙?用文檔中的某些信息編輯了 – ryantxr
。 – bart2puck