【发布时间】: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