我一直在尝试从工作中获取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;
?>
谢谢
答案 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请求时,它失败了,因为云中的机器不知道网络上的那台机器...对不起,一切都很好。 谢谢,