PHP狂饮获取请求

时间:2018-10-14 04:37:57

标签: php ubuntu guzzle

我一直在尝试从工作中获取GET请求,但始终收到500错误。

我对正在发生的事情不知所措。

如果我执行以下操作,则效果很好:

<?php

require 'vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'http://www.google.com',
]);

$response = $client->request('GET', 'search', [
    'query' => ['q' => 'curl']
]);

echo $response->getBody();
?>

但是我需要添加自定义标头,因此我在Stackoverflow上找到了这个小数字:

<?php
    require 'vendor/autoload.php';

    use GuzzleHttp\Client;
// enter base url if needed
$url = "localhost:3000/Testing/read/log"; 
$headers = array('X-Foo' => 'Bar');

$client = new Guzzle\Http\Client($url, array(
    "request.options" => array(
       "headers" => $headers
    )
));
?>

这个错误出来了,我调出控制台来查看是否发出了请求,但不是,只是错误到了500。

我不确定发生了什么。

如何使用带有自定义标头的耗时结构来构造GEt请求?

新的GET请求已编辑,仍然出现500错误。如果我通过POSTMAN发出请求,则效果很好。

<?php

require 'vendor/autoload.php';

use GuzzleHttp\Client;

$url = "http://localhost";
$headers = array('X-Foo' => 'Bar');

$client = new Guzzle\Http\Client($url, array(
    "request.options" => array(
       "headers" => $headers
    )
));
$response = $client->request('GET','/Test/read');
echo $response;
?>

谢谢

2 个答案:

答案 0 :(得分:0)

请尝试

<?php

require 'vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'http://www.google.com',
]);

$response = $client->request('GET', 'search', [
    'query' => ['q' => 'curl'],
    'headers' => ['X-Foo' => 'Bar'],
]);

echo $response->getBody();

答案 1 :(得分:0)

弄清楚了,不是因为它不是服务器,而是因为PHP是服务器端语言,所以当我向私有ip地址发出get请求时,它失败了,因为云中的机器不知道网络上的那台机器...对不起,一切都很好。 谢谢,