如何在 php curl 中的 GET 请求中传递令牌参数?
how to pass token parameter in GET request in php curl?
在我的 Laravel 5.8 应用程序中,我使用 API 方法描述:
curl --location --request GET "/api/user" \
--header "Accept: application/json" \
--header "Authorization: Bearer <user access token>"
但是我在 php curl?
中如何在 GET 请求中传递令牌参数失败
我试过了
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $this->serverApiHosting . '/api/user');
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json; charset=utf-8"));
$resp = curl_exec($ch);
$respArray = json_decode($resp);
我收到了消息:
Redirecting to http://myserver.com/login.
与 url 类似的问题:
curl_setopt($ch, CURLOPT_URL, $this->admindashApi . '/api/user?token=' . $logged_user_token);
我试过:
curl_setopt($ch, CURLOPT_URL, $this->admindashApi . '/api/user?Authorization=' . 'Bearer '. $logged_user_token);
但出现错误:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.10 (Debian) Server at phpstack-NNN-NNNN.cloudwaysapps.com Port 80</address>
</body></html>
</pre>
我必须把它放在CURLOPT_HTTPHEADER
吗?
我怎样才能做到这一点?
哪种方法有效?
您说得对,您必须将 header 添加到 CURLOPT_HTTPHEADER
。
这可以通过将 PHP 数组 object 添加到 CURLOPT_HTTPHEADER
来完成。
$headers = array(
"Content-Type: application/json; charset=utf-8",
"Authorization: Bearer ".$logged_user_token
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
在这里,您将创建 php 数组 object $headers
both Authorization
和 Content-Type
headers。然后,您将 CURLOPT_HTTPHEADER
设置为使用该 header 数组。
在我的 Laravel 5.8 应用程序中,我使用 API 方法描述:
curl --location --request GET "/api/user" \
--header "Accept: application/json" \
--header "Authorization: Bearer <user access token>"
但是我在 php curl?
中如何在 GET 请求中传递令牌参数失败我试过了
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $this->serverApiHosting . '/api/user');
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json; charset=utf-8"));
$resp = curl_exec($ch);
$respArray = json_decode($resp);
我收到了消息:
Redirecting to http://myserver.com/login.
与 url 类似的问题:
curl_setopt($ch, CURLOPT_URL, $this->admindashApi . '/api/user?token=' . $logged_user_token);
我试过:
curl_setopt($ch, CURLOPT_URL, $this->admindashApi . '/api/user?Authorization=' . 'Bearer '. $logged_user_token);
但出现错误:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.10 (Debian) Server at phpstack-NNN-NNNN.cloudwaysapps.com Port 80</address>
</body></html>
</pre>
我必须把它放在CURLOPT_HTTPHEADER
吗?
我怎样才能做到这一点?
哪种方法有效?
您说得对,您必须将 header 添加到 CURLOPT_HTTPHEADER
。
这可以通过将 PHP 数组 object 添加到 CURLOPT_HTTPHEADER
来完成。
$headers = array(
"Content-Type: application/json; charset=utf-8",
"Authorization: Bearer ".$logged_user_token
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
在这里,您将创建 php 数组 object $headers
both Authorization
和 Content-Type
headers。然后,您将 CURLOPT_HTTPHEADER
设置为使用该 header 数组。