Questions tagged «guzzle»

13
如何使用Guzzle以JSON发送POST请求?
有人知道post使用JSON 的正确方法Guzzle吗? $request = $this->client->post(self::URL_REGISTER,array( 'content-type' => 'application/json' ),array(json_encode($_POST))); 我internal server error从服务器收到响应。它可以使用Chrome浏览器Postman。
180 php  postman  guzzle 

6
狂饮6:没有更多的json()方法来响应
以前在Guzzle 5.3中: $response = $client->get('http://httpbin.org/get'); $array = $response->json(); // Yoohoo var_dump($array[0]['origin']); 我可以轻松地从JSON响应中获取一个PHP数组。现在在《食尸鬼6》中,我不知道该怎么做。似乎没有json()办法了。我(快速)从最新版本中阅读了该文档,但未发现有关JSON响应的任何信息。我想我错过了一些东西,也许有一个我不理解的新概念(或者我没有正确阅读)。 这是(下面)新方法唯一的方法吗? $response = $client->get('http://httpbin.org/get'); $array = json_decode($response->getBody()->getContents(), true); // :'( var_dump($array[0]['origin']); 还是有帮手或类似的东西?
172 php  guzzle 

2
Guzzlehttp-如何从Guzzle 6获得响应的主体?
我正在尝试为我公司正在开发的API编写包装器。这很安静,使用邮递员,我可以向http://subdomain.dev.myapi.com/api/v1/auth/用户端发送一个邮寄请求,例如使用用户名和密码作为POST数据,并且还给我一个令牌。所有工作均按预期进行。现在,当我尝试从PHP执行相同操作时,我得到了一个GuzzleHttp\Psr7\Response对象,但似乎无法像在Postman请求中那样在其内部的任何地方找到令牌。 相关代码如下: $client = new Client(['base_uri' => 'http://companysub.dev.myapi.com/']); $response = $client->post('api/v1/auth/', [ 'form_params' => [ 'username' => $user, 'password' => $password ] ]); var_dump($response); //or $resonse->getBody(), etc... 上面代码的输出看起来像(警告,文本输入墙): object(guzzlehttp\psr7\response)#36 (6) { ["reasonphrase":"guzzlehttp\psr7\response":private]=> string(2) "ok" ["statuscode":"guzzlehttp\psr7\response":private]=> int(200) ["headers":"guzzlehttp\psr7\response":private]=> array(9) { ["connection"]=> array(1) { [0]=> string(10) "keep-alive" } ["server"]=> array(1) { [0]=> …
163 php  response  guzzle  guzzle6 

5
处理Guzzle异常并获取HTTP正文
当服务器返回4xx和5xx状态代码时,我想处理来自Guzzle的错误。我发出这样的请求: $client = $this->getGuzzleClient(); $request = $client->post($url, $headers, $value); try { $response = $request->send(); return $response->getBody(); } catch (\Exception $e) { // How can I get the response body? } $e->getMessage返回代码信息,但不返回HTTP响应的主体。如何获得响应主体?
122 php  guzzle 

4
PHP GuzzleHttp。如何使用params进行发布请求?
如何使用GuzzleHttp(5.0版)发出发布请求。 我正在尝试执行以下操作: $client = new \GuzzleHttp\Client(); $client->post( 'http://www.example.com/user/create', array( 'email' => 'test@gmail.com', 'name' => 'Test user', 'password' => 'testpassword' ) ); 但是我得到了错误: PHP致命错误:消息为“没有方法可以处理电子邮件配置密钥”的未捕获异常'InvalidArgumentException'

8
从Guzzle捕获异常
我正在尝试从正在开发的API上运行的一组测试中捕获异常,并且正在使用Guzzle消费API方法。我已经将测试包装在try / catch块中,但是它仍然引发未处理的异常错误。按照他们的文档中所述添加事件侦听器似乎没有任何作用。我需要能够检索HTTP代码为500、401、400的响应,实际上不是200的任何内容,因为如果系统不起作用,系统会根据调用结果设置最合适的代码。 当前代码示例 foreach($tests as $test){ $client = new Client($api_url); $client->getEventDispatcher()->addListener('request.error', function(Event $event) { if ($event['response']->getStatusCode() == 401) { $newResponse = new Response($event['response']->getStatusCode()); $event['response'] = $newResponse; $event->stopPropagation(); } }); try { $client->setDefaultOption('query', $query_string); $request = $client->get($api_version . $test['method'], array(), isset($test['query'])?$test['query']:array()); // Do something with Guzzle. $response = $request->send(); displayTest($request, …

5
大量在后台进程中抛出RejectionException而不是ConnectionException
我有在多个队列工作器上运行的作业,其中包含一些使用Guzzle的HTTP请求。但是,GuzzleHttp\Exception\RequestException当我在后台进程中运行这些作业时,该作业中的try-catch块似乎没有出现。正在运行的进程是php artisan queue:workLaravel队列系统工作程序,它监视队列并提取作业。 相反,抛出的异常是以下GuzzleHttp\Promise\RejectionException消息之一: 该承诺因以下原因而被拒绝:cURL错误28:在接收到0个字节的30001毫秒后操作超时(请参阅 https://curl.haxx.se/libcurl/c/libcurl-errors.html) 这实际上是伪装的GuzzleHttp\Exception\ConnectException(请参阅https://github.com/guzzle/promises/blob/master/src/RejectionException.php#L22),因为如果我在通过访问URL,我确实收到了ConnectException如下消息: cURL错误28:100毫秒后操作超时,收到0个字节中的0个(请参阅 https://curl.haxx.se/libcurl/c/libcurl-errors.html) 触发此超时的示例代码: try { $c = new \GuzzleHttp\Client([ 'timeout' => 0.1 ]); $response = (string) $c->get('https://example.com')->getBody(); } catch(GuzzleHttp\Exception\RequestException $e) { // This occasionally gets catched when a ConnectException (child) is thrown, // but it doesnt happen with RejectionException because it is not …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.