我正在使用这个不太好的 ASAP Connected文档。它是为 .NET 编写的,但我正在用它为客户端创建一个 PHP 插件。
为了获得授权,它提供了以下代码片段:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://stagingapi.asapconnected.com/api/login");
request.Headers.Add(HttpRequestHeader.Authorization, "user=username&organizationId=id&password=password&apiKey=apikey");
request.Accept = "application/json";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string accessToken = response.Headers["asap_accesstoken"];
在我的插件中,我尝试这样做:
$request_url = 'https://stagingapi.asapconnected.com/api/login';
$headers = array(
//Accept or Content type
'Accept: application/json',
//Authorisation
'Authorization: ' . http_build_query(array(
'user' => ASAPCONNECTED_USERNAME,
'password' => ASAPCONNECTED_PASSWORD,
'organizationId' => ASAPCONNECTED_ORGANIZATION_ID,
'apiKey' => ASAPCONNECTED_API_KEY
)));
$curl = curl_init($request_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); //Return response as string instead of display
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //Ignore any SSL errors
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); //Specify our header
curl_setopt($curl, CURLOPT_HTTPGET, true); //Specify that this is a GET request
$response = curl_exec($curl); //Execute cURL and collect the response
$curl_info = curl_getinfo($curl); //Retrieve it's info
$curl_error = curl_error($curl); //Retrieve it's error
curl_close($curl); //Close the cURL
if ($curl_error || !$response) {
if ($curl_error) {
//An error occurred requesting authorisation from the API!
}
if (!$response) {
//The response was empty when requesting authorisation from the API!
}
} else {
//The API authorisation request was a success! Do stuff...
}
所以我认为“GetResponse”就像一个 GET 请求,并且文档及其片段非常清楚地将 API 凭据放在“Authorization”标头中。然而,我得到的答复是空的!它不会返回任何错误。当我记录$curl_info变量时,它输出以下内容(省略了一些数据):
www说
HUWWW
随时随地看视频慕课网APP