在我的PHP Guzzle客户端代码中,我有一些类似的东西
$c = new Client('http://test.com/api/1.0/function');
$request = $c->get('?f=4&l=2&p=3&u=5');
但相反,我想要一些类似的东西:
$request->set('f', 4);
$request->set('l', 2);
$request->set('p', 3);
$request->set('u', 5);
在Guzzle有可能吗?从文档和随机谷歌搜索来看,这似乎是真的,但我找不到确切的方法。
您可以:
$c = new Client('http://test.com/api/1.0/function');
$request = $c->get();
$q = $request->getQuery();
$q->set('f', 4);
$q->set('l', 2);
$q->set('p', 3);
$q->set('u', 5);
Guzzle 6-您可以使用查询选项param
// Send a GET request to /get?foo=bar
$client->request('GET', '/get', ['query' => ['foo' => 'bar']]);
http://docs.guzzlephp.org/en/stable/request-options.html#query
看看Guzzle文档https://docs.guzzlephp.org/en/stable/request-options.html正如您所看到的,它有RequestOptions。RequestOptions是常量。它们是在GuzzleHttp''RequestOptions中定义的。您可以查看类源代码,并在那里看到所有这些代码。因此,为了保持良好和专业的编程风格,您可以在下面编写以下源代码,例如
use GuzzleHttp'Client;
use GuzzleHttp'RequestOptions;
class DataClass extends BaseClass
{
const DEFAULT_ACCEPT_HEADER = 'application/json';
const DEFAULT_CACHE_HEADER = 'no-cache';
const HOST = 'http://test.com/';
const ENDPOINT = 'api/1.0/function';
const TIMEOUT = 2.0;
private function getData()
{
$client = new Client([
'base_uri' => self::HTTP_HOST,
'timeout' => self::TIMEOUT
]
);
$response = $client->request('GET', self::ENDPOINT,
[
RequestOptions::HEADERS => [
'Accept' => self::DEFAULT_ACCEPT_HEADER,
'Cache-Control' => self::DEFAULT_CACHE_HEADER,
],
RequestOptions::QUERY => [
'f' => 4,
'l' => 2,
'p' => 3,
'u' => 5
]
]
);
return json_decode($response->getBody(), JSON_OBJECT_AS_ARRAY);
}