【问题标题】:Testing api with Guzzle getting 403使用 Guzzle 测试 api 得到 403
【发布时间】:2019-08-02 04:09:21
【问题描述】:

我正在用 symfony 4 编写一个 api,所以为了测试它,我安装了 Guzzle 来发出一些请求。 我有一个本地 Web 服务器(与 php 相同 - 或者重要的是您使用 symfony 的控制台运行的那个)。

我的代码如下:

<?php

require __DIR__.'/vendor/autoload.php';

use GuzzleHttp\Psr7\Request;

$client = new \GuzzleHttp\Client([
    'base_uri' => 'http://127.0.0.1:8000',
    'http_errors' => false,
]);

$response = $client->get('/');

echo $response->getStatusCode();    // --> 403

或者如果我用 'http_errors' => false 注释该行,我会得到:

PHP Fatal error:  Uncaught GuzzleHttp\Exception\ClientException: Client error: `GET http://127.0.0.1:8000/` resulted in a `403 Forbidden` response:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<meta http-equiv (truncated...)
 in D:\Work\Programming\SIGMET\2.0\sigmet_2.0\vendor\guzzlehttp\guzzle\src\Exception\RequestException.php:113
Stack trace:
#0 D:\Work\Programming\SIGMET\2.0\sigmet_2.0\vendor\guzzlehttp\guzzle\src\Middleware.php(66): GuzzleHttp\Exception\RequestException::create(Object(GuzzleHttp\Psr7\Request), Object(GuzzleHttp\Psr7\Response))
#1 D:\Work\Programming\SIGMET\2.0\sigmet_2.0\vendor\guzzlehttp\promises\src\Promise.php(203): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Response))
#2 D:\Work\Programming\SIGMET\2.0\sigmet_2.0\vendor\guzzlehttp\promises\src\Promise.php(156): GuzzleHttp\Promise\Promise::callHandler(1, Object(GuzzleHttp\Psr7\Response), Array)
#3 D:\Work\Programming\SIGMET\2.0\sigmet_2.0\vendor\guzzlehttp\promises\src\Ta in D:\Work\Programming\SIGMET\2.0\sigmet_2.0\vendor\guzzlehttp\guzzle\src\Exception\RequestException.php on line 113

可能是什么? 提前致谢。

【问题讨论】:

  • 如果您在浏览器中转到127.0.0.1:8000,您会看到什么?您的错误代码似乎表明该 URL 被禁止访问。
  • 您需要更好的错误处理。如果您编写 API,则返回值无论如何都应该是 json(或其他)。即使在错误情况下。
  • 可以正常浏览
  • 问题是@Mruf 我无法从我的服务器获得响应

标签: php rest symfony guzzle6


【解决方案1】:

我发现问题出在定义代理设置的环境变量上

【讨论】:

    猜你喜欢
    • 2021-08-12
    • 2015-08-26
    • 2017-08-28
    • 1970-01-01
    • 2015-12-10
    • 2020-09-28
    • 2021-05-01
    • 2018-04-25
    • 2021-03-31
    相关资源
    最近更新 更多