2015-06-15 17 views
6

Aşağıdaki kodu çalıştırdığımda (en son Guzzle, v6 kullanarak), istekte bulunan URLişaretini bırakarak http://example.com/foobar?foo=bar olacaktır. Guzzle kullanarak varsayılan sorgu dizesi paramları ve isteğe özel params nasıl birleştirilir?

$guzzle_http_client = new GuzzleHttp\Client([ 
    'base_uri' => 'http://example.com/', 
    'query' => [ 
     'foo' => 'bar' 
    ], 
]); 

$request = new \GuzzleHttp\Psr7\Request('GET', 'foobar?boo=far'); 
$response = $guzzle_http_client->send($request); 

ben şu kodu çalıştırın

yerine Client::send() yöntemin bir parçası olarak boo=far geçen istenen alır URL'yi talep edilecek istediğiniz URL Tabii http://example.com/foobar?boo=far

$guzzle_http_client = new GuzzleHttp\Client([ 
    'base_uri' => 'http://example.com/', 
    'query' => [ 
     'foo' => 'bar' 
    ], 
]); 

$request = new \GuzzleHttp\Psr7\Request('GET', 'foobar'); 
$response = $guzzle_http_client->send($request, ['query' => ['boo' => 'far']]); 

olduğunu :

http://example.com/foobar?foo=bar&bar=foo 

nasıl guzzle isteği özgü parametreleri ile varsayılan istemci sorgu dizesi parametrelerini birleştirmek yapabilirim?

+0

bulabilirsiniz! PSR7 \ Uri nesnesini "withQueryValue" statik yöntemiyle oluşturdum ve yapıcıya ilettim. Ama ya işe yaramadı! –

cevap

6

Sen 'getconfig' yöntemini kullanarak varsayılan 'sorgu' seçeneklerini almak ve sonra yeni 'sorgu' seçenekleri aşağıda bir örnek ile birleştirmek için deneyebilirsiniz:

$client = new GuzzleHttp\Client([ 
    'base_uri' => 'http://example.com/', 
    'query' => ['foo' => 'bar'] 
]); 

Ve sonra kolay bir GET isteği gönderebilir :

$client->get('foobar', [ 
    'query' => array_merge(
     $client->getConfig('query'), 
     ['bar' => 'foo'] 
    ) 
]); 

Ek bilgiler size Bu gerçek bir acıdır burada Request Options

İlgili konular