我尝试使用cURL通过php设置API调用。 API文档提供了从Java调用此API的示例:
HttpResponse<JsonNode> response = Unirest.get("https://api2445582011268.apicast.io/games/1942?fields=*")
.header("user-key", "*******")
.header("Accept", "application/json")
.asJson();
这是我尝试将其转换为php中的cURL调用:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api2445582011268.apicast.io/games/1942?fields=*");
curl_setopt($ch, CURLOPT_HEADER, array(
"user-key: *******",
"Accept: application/json"
));
$output = curl_exec($ch);
echo $output;
curl_close($ch);
但是我的php回应了以下输出:
HTTP/1.1 403 Forbidden Content-Type: text/plain; charset=us-ascii Date: Sat, 02 Sep 2017 02:52:40 GMT Server: openresty/1.9.15.1 Content-Length: 33 Connection: keep-alive Authentication parameters missing1
有谁知道如何解决这个问题?
答案 0 :(得分:2)
您使用CURLOPT_HEADER
(这是一个布尔值表示您希望输出中的标头),但您需要CURLOPT_HTTPHEADER
(用于传递带有请求标头的数组):
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"user-key: *******",
"Accept: application/json"
));