【问题标题】:Testing API calls between two local projects running on Laravel Homestead在 Laravel Homestead 上运行的两个本地项目之间测试 API 调用
【发布时间】:2017-11-03 15:20:54
【问题描述】:

我正在尝试使用 GuzzleHttp 从 projectA 向 projectB 发出 POST 请求。这两个项目都在同一个 Homestead 实例上运行。问题是端点没有收到请求。

Windows 主机文件:

192.168.10.10 projectA.local
192.168.10.10 projectB.local

项目A中的GuzzleHttp调用

$this->httpClient = new Client(array(
    'base_uri' => 'http://projectB.local/api/'
));

$response = $this->httpClient->post('create-user', array('form_params' => $this->params));

return $response->getStatusCode();

在项目B中调试:

public function createUser(Request $request) {
    Logger::debug('API call received'); // custom logging of the call in the database
}

现在,此 API 调用永远不会记录在数据库中。 projectA 发送请求,但 projectB 没有收到。

我确认的内容:

  • $this->params 已设置且正确(这些是 POST 参数)
  • 端点 URI 正确 (http://projectB.local/api/create-user)
  • 端点存在于projectB中,可访问并响应POST
  • 响应状态码为200

我错过了什么?不能从另一个 Homestead 项目中调用一个 Homestead 项目吗?


更新 - 来自 Homestead 的配置

/etc/hosts

127.0.0.1       homestead       homestead
127.0.0.1       localhost
127.0.1.1       vagrant.vm      vagrant
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

/etc/resolv.conf

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.2.3

/etc/nsswitch.conf

> grep hosts /etc/nsswitch.conf
> hosts:          files dns

主机检查

> host projectB.local
> Host projectB.local not found: 4(NOTIMP)
> Host projectB.local not found: 4(NOTIMP)

【问题讨论】:

  • 你能显示你的虚拟主机配置吗?
  • @VaheGalstyan 当然。更新了帖子。

标签: php laravel laravel-5.2


【解决方案1】:

好的,我开始认为可能是在到达端点之前中断了 API 调用。我在每个请求上都运行了一些全局中间件(例如 VerifyCsrfToken 一个)。

我确保我的端点路径被排除在中间件的处理之外,就是这样:

if (!$request->is('api/*)) {
    // handle...
}

具体来说,在VerifyCsrfToken中间件中,可以使用提供的字段:

protected $except = [
    'api/*'
];

现在听起来很明显,几乎令人作呕。

【讨论】:

    猜你喜欢
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    • 2019-02-03
    • 2016-10-12
    • 2017-09-06
    • 2018-01-10
    相关资源
    最近更新 更多