在 PHP 上使用 curl 为网络 API 设置路径 HTTP GET 请求
Setting a path HTTP GET Request using curl on PHP, for web API
我正在使用 teamviewer API 开发 web_app。根据 documentation,它使用 HTTP 请求(GET、POST 等)工作。
我不知道如何使用 CURL 在 PHP 上发出请求。文档说要这样做:
POST /api/v1/oauth2/token HTTP/1.1
Host: webapi.teamviewer.com
Content-Type: application/x-www-form-urlencoded
所以我写了这个
$url = 'webapi.teamviewer.com';
$headers = array(
'GET /api/v1/oauth2/authorize HTTP/1.1',
'Content-type: application/x-www-form-urlencoded'
);
//data
$data = [
'response_type' => 'authorization_code',
'redirect_uri' => 'https%3A%2F%2FTesting%2Ecom%2F',
'client_id' => '65671-XDdsxUNyxGmskcJHQgLC'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
我只是不知道如何指示请求 HTTP/1.1
和路径 /api/v1/oauth2/authorize
。我将它放在页眉中,但我确定它不会放在那里。
我曾经在嵌入式 C 上工作,我记得首先连接到主机,然后将 GET 路径 HTTP/1.1 作为命令写入。
您的 $url
应该是完整路径,就像正常的 URL 一样。所以它会是
$url = 'webapi.teamviewer.com/api/v1/oauth2/authorize';
并且您可以从 $headers
中删除 GET ...
部分,因为 URL(路径)不在其中。
之后应该可以了。如果您想查看有关 curl 连接的更多信息以及发生了什么,请添加此选项:
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl 选项的完整列表位于 PHP manual page on curl_setopt
。
我正在使用 teamviewer API 开发 web_app。根据 documentation,它使用 HTTP 请求(GET、POST 等)工作。
我不知道如何使用 CURL 在 PHP 上发出请求。文档说要这样做:
POST /api/v1/oauth2/token HTTP/1.1
Host: webapi.teamviewer.com
Content-Type: application/x-www-form-urlencoded
所以我写了这个
$url = 'webapi.teamviewer.com';
$headers = array(
'GET /api/v1/oauth2/authorize HTTP/1.1',
'Content-type: application/x-www-form-urlencoded'
);
//data
$data = [
'response_type' => 'authorization_code',
'redirect_uri' => 'https%3A%2F%2FTesting%2Ecom%2F',
'client_id' => '65671-XDdsxUNyxGmskcJHQgLC'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
我只是不知道如何指示请求 HTTP/1.1
和路径 /api/v1/oauth2/authorize
。我将它放在页眉中,但我确定它不会放在那里。
我曾经在嵌入式 C 上工作,我记得首先连接到主机,然后将 GET 路径 HTTP/1.1 作为命令写入。
您的 $url
应该是完整路径,就像正常的 URL 一样。所以它会是
$url = 'webapi.teamviewer.com/api/v1/oauth2/authorize';
并且您可以从 $headers
中删除 GET ...
部分,因为 URL(路径)不在其中。
之后应该可以了。如果您想查看有关 curl 连接的更多信息以及发生了什么,请添加此选项:
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl 选项的完整列表位于 PHP manual page on curl_setopt
。