2017-04-19 45 views
1

我正在查看API,所有示例都使用cURL。我自己不使用cURL,并且正在寻找可以作为GET参数发送的等效URL字符串。cURL命令的URL(字符串)等价物?

例如,假设卷曲的命令是这样的:

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

会是怎样的等效URL字符串呢?可以复制并粘贴到浏览器中的东西,并返回相应的JSON响应。例如:

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

cURL docs-uuser:password,这就是为什么我想,对于以前的卷曲命令GET变量(一个或多个)为user=NEekIy8ngCpv8TbOjrliapP0D1Bu9SN9(和password=?)

这是正确的转换?无论我在哪里看,我都找不到等值图。即使是快速的代码,我也可以用PHP或JS编写一个cURL对象,然后返回格式化的URL字符串即可。

回答

1

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

字符串等同于这一点,投入到浏览器的地址栏时,应工作是:

user:[email protected]/api/orgs 

如果使用

[email protected]/api/orgs 

你会被提示消息框,询问用于用户名和密码。

如果从服务器端的方法是“基本”或“摘要”,这适用。还有很多其他的auth方法被使用。由于我不擅长这个话题,所以我不能告诉你它是否会一直工作。

也有看看这个最后一个音符的链接页面上:

使用这些网址被弃用。 ...

0

您可以使用file_get_contents它一样卷曲

代码示例:

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

要发送$ _POST和$ _GET请求您可以使用Guzzlehttp://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(); 

?> 
+0

是的,但这并不回答我的问题。我不寻找一个PHP的等价物,我正在寻找字符串等效。如果你要展示一个例子,至少使用'-u'内容中的同一个例子。这个答案只是为了争取更多的声誉。 – Birrel

+0

阅读我的答案更新我添加更多关于如何发送帖子并使用guzzle获取请求的信息 –

+0

感谢您的更新。我很感激你,包括认证参数。我仍然对GET格式的URL字符串看起来很感兴趣。这不是POST请求,所以应该有一个有形的字符串,我可以(理论上)复制并粘贴到浏览器中,并接收有效的响应。 – Birrel

相关问题