Php 通过fsockopen通过wordpress插件中的代理连接时出错

Php 通过fsockopen通过wordpress插件中的代理连接时出错,php,wordpress,proxy,fsockopen,Php,Wordpress,Proxy,Fsockopen,我正在使用wordpress的统计插件,它在类IXR中使用了核心wordpress类IXR_客户端。尽管根据文档,它使用了wp-config.php中的代理配置,但我看不出有什么办法,因为它使用了与fsockopen中相同的主机地址(查看fsockopen,它应该是代理地址) 我已经修改了fsockopen以指向我的代理,它现在确实收到了来自代理的响应,尽管代理日志中出现了“TCP_DENIED/400 4139 POST error:invalid request-NONE/-text/htm

我正在使用wordpress的统计插件,它在类IXR中使用了核心wordpress类IXR_客户端。尽管根据文档,它使用了wp-config.php中的代理配置,但我看不出有什么办法,因为它使用了与fsockopen中相同的主机地址(查看fsockopen,它应该是代理地址)

我已经修改了fsockopen以指向我的代理,它现在确实收到了来自代理的响应,尽管代理日志中出现了“TCP_DENIED/400 4139 POST error:invalid request-NONE/-text/html”,并且代理返回了一个错误。我有一种感觉,我没有包装代理的请求权

请求:(有些事情改变了)

POST/xmlrpc.php HTTP/1.0主机:wordpress.com内容类型:
text/xml用户代理:包含的xml-RPC PHP库内容长度:1770 wpStats.check_键
123456789012
hostthedomainoftheblog.com
路径/
管理员1
wp_me1
注册用户
页脚1
版本7
错误
blogname | BLOG NAMEFUL
blogdescriptionblogs名称norma
lsiteurl
http://thedomainoftheblog.com 
格林尼治标准时间偏移量0
时区字符串
统计数据第7版
stats_Apitpack
第0页上的第0页
permalink_结构
/%年份%/%monthnum%/%day%/%postname%/
类别库
塔古基地
如果你需要更多的信息,请告诉我


干杯

在WP中有几个与代理相关的常量,以及WP includes/class-http.php中使用的一大堆其他常量。您是否尝试过设置其中的一个或全部?e、 g:

WP_PROXY_HOST
WP_PROXY_PORT
WP_PROXY_USERNAME
WP_PROXY_PASSWORD
WP_PROXY_BYPASS_HOSTS

诀窍似乎是至少根据以下链接添加POST请求(即,不只是POST/文件名,就像class-IXR.php默认的那样):


我已经试过了,它肯定能用。

IXR_客户端不使用任何代理常量,而fsockspen使用与主机相同的地址,正如我在第一段中所说。您可能没有注意到WP使用了两个扩展类,分别位于class-WP-xmlrpc-server.php和class-WP-http-ixrp-Client.php中(两者都包括/)?它们都使用上述文件中引用的http对象,以及所有与http相关的常量。要通过fsockspen连接到代理,在调用@fsockopen时必须使用代理地址。在WP代码中,它对host和@fsockopen使用相同的地址,因此不会使用常量。根据文档,这是将@fsockopen连接到代理的唯一方法,因此不能使用全局。
WP_PROXY_HOST
WP_PROXY_PORT
WP_PROXY_USERNAME
WP_PROXY_PASSWORD
WP_PROXY_BYPASS_HOSTS