laruence/yar

Uncaught Yar_Client_Transport_Exception: server responsed non-200 code '400'

si812cn opened this issue · 14 comments

我调用老版本的php5.6的正常
新安装了php7.3版本之后,一直报这个错误
不知道什么问题

我用yar_debug.php调试又是可以的,Yar_Client这个是不是有些问题

yar2.0.5,返回时,hostname变成了Hostname: \x01\,实际上应该还是Hostname: 10.188.0.154
这个在yar1.2.5里是正确的
dumpio_in (data-HEAP): POST /services.php HTTP/1.1\r\n
[Tue Mar 12 08:15:01.243847 2019] [dumpio:trace7] [pid 21] mod_dumpio.c(140): [client 10.188.0.154:57750] mod_dumpio: dumpio_in [getline-blocking] 0 readbytes
[Tue Mar 12 08:15:01.243856 2019] [dumpio:trace7] [pid 21] mod_dumpio.c(63): [client 10.188.0.154:57750] mod_dumpio: dumpio_in (data-HEAP): 25 bytes
[Tue Mar 12 08:15:01.243862 2019] [dumpio:trace7] [pid 21] mod_dumpio.c(103): [client 10.188.0.154:57750] mod_dumpio: dumpio_in (data-HEAP): Host: 10.188.0.154:9151\r\n
[Tue Mar 12 08:15:01.243867 2019] [dumpio:trace7] [pid 21] mod_dumpio.c(140): [client 10.188.0.154:57750] mod_dumpio: dumpio_in [getline-blocking] 0 readbytes
[Tue Mar 12 08:15:01.243871 2019] [dumpio:trace7] [pid 21] mod_dumpio.c(63): [client 10.188.0.154:57750] mod_dumpio: dumpio_in (data-HEAP): 13 bytes
[Tue Mar 12 08:15:01.243875 2019] [dumpio:trace7] [pid 21] mod_dumpio.c(103): [client 10.188.0.154:57750] mod_dumpio: dumpio_in (data-HEAP): Accept: /\r\n
[Tue Mar 12 08:15:01.243881 2019] [dumpio:trace7] [pid 21] mod_dumpio.c(140): [client 10.188.0.154:57750] mod_dumpio: dumpio_in [getline-blocking] 0 readbytes
[Tue Mar 12 08:15:01.243885 2019] [dumpio:trace7] [pid 21] mod_dumpio.c(63): [client 10.188.0.154:57750] mod_dumpio: dumpio_in (data-HEAP): 31 bytes
[Tue Mar 12 08:15:01.243889 2019] [dumpio:trace7] [pid 21] mod_dumpio.c(103): [client 10.188.0.154:57750] mod_dumpio: dumpio_in (data-HEAP): User-Agent: PHP Yar Rpc-2.0.5\r\n
[Tue Mar 12 08:15:01.243894 2019] [dumpio:trace7] [pid 21] mod_dumpio.c(140): [client 10.188.0.154:57750] mod_dumpio: dumpio_in [getline-blocking] 0 readbytes
[Tue Mar 12 08:15:01.243898 2019] [dumpio:trace7] [pid 21] mod_dumpio.c(63): [client 10.188.0.154:57750] mod_dumpio: dumpio_in (data-HEAP): 19 bytes
[Tue Mar 12 08:15:01.243902 2019] [dumpio:trace7] [pid 21] mod_dumpio.c(103): [client 10.188.0.154:57750] mod_dumpio: dumpio_in (data-HEAP): Connection: close\r\n
[Tue Mar 12 08:15:01.243913 2019] [dumpio:trace7] [pid 21] mod_dumpio.c(140): [client 10.188.0.154:57750] mod_dumpio: dumpio_in [getline-blocking] 0 readbytes
[Tue Mar 12 08:15:01.243918 2019] [dumpio:trace7] [pid 21] mod_dumpio.c(63): [client 10.188.0.154:57750] mod_dumpio: dumpio_in (data-HEAP): 13 bytes
[Tue Mar 12 08:15:01.243922 2019] [dumpio:trace7] [pid 21] mod_dumpio.c(103): [client 10.188.0.154:57750] mod_dumpio: dumpio_in (data-HEAP): Hostname: \x01\r\n
[Tue Mar 12 08:15:01.243926 2019] [dumpio:trace7] [pid 21] mod_dumpio.c(140): [client 10.188.0.154:57750] mod_dumpio: dumpio_in [getline-blocking] 0 readbytes

php7.2可以,php7.3不行,崩溃中。。。
本想自己编译一下,又懒得动

遇到了相同的问题。无解

服务器返回400 错误,基本说明是客户端传递过去的参数错误,俺使用yar_debug.php 做了一下测试,只有在Hearder 中Hostname: \x01\r\n 出现问题的时候会返回400 错误。

我去稍微看了一下源代码,大概知道问题出在什么地方了。 某种角度来看只要确定不是我自己配置不对之类的原因就好了,这个事情产生一个教训啊,就是有些东西还是自己写更可控啊!

我用的docker部署环境,
NLAMP,
php7.3
yaf 3.0.8
yar 2.0.5
image
image
服务端一直这个报错server responsed non-200 code '400'

我把php升级到7.3后,在iis 7.5(windows)和Apache2.4.39(windows)下 yar扩展(yar 2.0.5和2.0.4都测试过)报错:server responsed non-200 code '400',但是在nginx1.15.11(windows) ,nginx1.16.1(centos7) 和apache2.4.23(windows)下yar扩展使用正常。
不知道作者什么时候可修复这个bug,现在项目已经使用了,希望能升级到7.3可保证开发环境和生产环境一致。

php 7.2 同样报错

yar本身也是发起一个http请求,如果服务器返回40x, 那就跟正常的http请求40x一样,一般都属于你服务器没有配置好,可以打开nginx的error_log看看原因

yar本身也是发起一个http请求,如果服务器返回40x, 那就跟正常的http请求40x一样,一般都属于你服务器没有配置好,可以打开nginx的error_log看看原因

已解决,亲测 yar_client没有问题。
是我自己瞎,内网端口没写上。
估计大家都是哪里有问题没注意,对于新事务,大家都很容易陷入误区。其实是自己没做对!