cURL命令的URL(字符串)等价物?

时间:2017-04-19 16:56:42

标签: javascript php curl

我正在查看API,所有示例都是使用cURL给出的。我自己不使用cURL,并且正在寻找可以作为GET参数发送的等效URL字符串。

例如,假设cURL命令是:

$ curl -X GET "https://thesite.com/api/orgs" \
       -u "NEekIy8ngCpv8TbOjrliapP0D1Bu9SN9:"

这个等效的URL字符串是什么?可以复制并粘贴到浏览器中的东西,并返回相应的JSON响应。类似的东西:

https://thesite.com/api/orgs?user=NEekIy8ngCpv8TbOjrliapP0D1Bu9SN9 ??

cURL docs-uuser:password,这就是为什么我认为前一个cURL命令的GET变量是user=NEekIy8ngCpv8TbOjrliapP0D1Bu9SN9(和{{ 1}}?)

这是正确的转换吗?无论我在哪里,我都无法在任何地方找到等效图表。即使是一个快速的代码,我可以用PHP或JS编写来创建一个cURL对象,然后返回格式化的URL字符串就足够了。

2 个答案:

答案 0 :(得分:1)

这与Authorization HTTP标头和HTTP Authentication有关,它将包含用户名和密码。但是这个用户名不是GET参数,而是进入HTTP Header,因此不能在查询字符串中使用它(?user = ...)。

与此相当的字符串,在放入浏览器的地址栏时应该有效:

user:password@thesite.com/api/orgs

如果您使用

user@thesite.com/api/orgs

系统将提示您输入一个询问用户名和密码的消息框。

如果服务器端的方法是“基本”或“摘要”,则此方法有效。还有很多其他的auth方法。由于我不专注于这个主题,我不能告诉你它是否会一直有效。

另请查看链接页面上的最后一个注释:

  

不推荐使用这些网址。 ...

答案 1 :(得分:0)

您可以使用file_get_contents它与curl

相同

代码示例:

<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>

要发送$ _POST和$ _GET请求,您可以使用Guzzle http://docs.guzzlephp.org/en/latest/

代码示例:

<?php

    $client = new GuzzleHttp\Client();
    $res = $client->request('GET', 'https://api.github.com/user', [
        'auth' => ['user', 'pass']
    ]);
    echo $res->getStatusCode();
    // "200"
    echo $res->getHeader('content-type');
    // 'application/json; charset=utf8'
    echo $res->getBody();
    // {"type":"User"...'

    // Send an asynchronous request.
    $request = new \GuzzleHttp\Psr7\Request('GET', 'http://httpbin.org');
    $promise = $client->sendAsync($request)->then(function ($response) {
        echo 'I completed! ' . $response->getBody();
    });
    $promise->wait();

?>