Header头Hostname传递非法字符串导致Go-Yar服务返回400错误
flyhope opened this issue · 2 comments
flyhope commented
环境
- 操作系统:CentOS 7.6
- Docker容器操作系统:CentOS8/7
- PHP版本:7.4.1/7.1.33
- Yar版本:2.0.7
问题描述
通过该开源项目,搭建了GO-Yar服务
https://github.com/weixinhost/yar.go
然后,PHP使用Yar扩展调用时,报错
Fatal error: Uncaught Yar_Client_Transport_Exception: server responsed non-200 code '400'
通过DLV调试Go代码,发现PHP的Yar扩展Client发送了一个Hostname的Header,Val不符合规范,导致报错
修正建议
PHP Yar扩展Client不要发送Hostname header或者发送合法字符。
PHP Client示例代码
<?php
$uri = 'http://127.0.0.1:8080/';
$client = new Yar_Client($uri);
$client->SetOpt(YAR_OPT_PACKAGER, "json");
$result = $client->echo();
var_dump($result);
laruence commented
过春节,没看到, 应该已经修复了, 你可以试用下master最新代码
laruence commented
yar-2.1.0发布中已经包含此修复