2011-05-09 53 views
2

我在使用class-IXR中的核心wordpress類IXR_Client的wordpress中使用了stats插件。雖然根據文檔它使用在wp-config.php中找到的代理配置我看不出它可以,因爲它使用相同的地址爲主機,因爲它在fsockopen(看fsockopen它應該是代理地址)在wordpress插件中通過代理通過fsockopen連接時出錯

我已將fsockopen修改爲指向我的代理,並且它現在可以從代理接收到響應,儘管在代理日誌中出現了'TCP_DENIED/400 4139 POST錯誤:invalid-request - NONE/- text/html'返回一個錯誤。我有一種感覺,我沒有爲代理包裝請求權。

請求:(一些事情發生了變化)

POST /xmlrpc.php HTTP/1.0 Host: wordpress.com Content-Type: 
text/xml User-Agent: The Incutio XML-RPC PHP Library Content-Length: 1770 <?xml 
version="1.0"?> <methodCall> <methodName>wpStats.check_key</methodName> <params> 
<param><value><string>123456789012</string></value></param> <param><value><struct> 
<member><name>host</name><value><string>thedomainoftheblog.com</string></value></member> 
<member><name>path</name><value><string>/</string></value></member> 
<member><name>admin_bar</name><value><string>1</string></value></member> 
<member><name>wp_me</name><value><string>1</string></value></member> 
<member><name>reg_users</name><value><string></string></value></member> 
<member><name>footer</name><value><string>1</string></value></member> 
<member><name>version</name><value><string>7</string></value></member> 
<member><name>error</name><value><string></string></value></member> 
<member><name>blogname</name><value><string>THE | BLOG NAMEFUL</string></value></member> 
<member><name>blogdescription</name><value><string>blogs name norma 
l</string></value></member><member><name>siteurl</name> 
<value><string>http://thedomainoftheblog.com</string></value></member> 
<member><name>gmt_offset</name><value><string>0</string></value></member> 
<member><name>timezone_string</name><value><string></string></value></member> 
<member><name>stats_version</name><value><string>7</string></value></member> 
<member><name>stats_api</name><value><string>jetpack</string></value></member> 
<member><name>page_on_front</name><value><string>0</string></value></member> 
<member><name>permalink_structure</name><value> 
<string>/%year%/%monthnum%/%day%/%postname%/</string></value></member> 
<member><name>category_base</name><value><string></string></value></member> 
<member><name>tag_base</name><value><string></string></value></member> </struct></value></param> </params></methodCall> 

如果您需要更多的信息,讓我知道。

乾杯

回答

0

有在WP一些代理相關的常數,以及在使用一大堆其他常量的WP-包括/類http.php。你有沒有嘗試設置它們中的任何一個或全部?例如:

WP_PROXY_HOST 
WP_PROXY_PORT 
WP_PROXY_USERNAME 
WP_PROXY_PASSWORD 
WP_PROXY_BYPASS_HOSTS 
+0

IXR_Client不使用任何代理常量,fsocksopen使用與主機相同的地址,正如我在第一段中所述。 – Rudiger 2011-05-15 12:06:07

+0

可能你錯過了WP使用位於(包括wp-includes /)class-wp-xmlrpc-server.php和class-wp-http-ixr-client.php中的兩個擴展類?這些都使用上面文件中引用的http對象,並因此使用所有http相關的常量。 – 2011-05-15 12:13:54

+0

要通過fsocksopen連接到代理,您必須在調用@fsockopen時使用代理地址。在WP代碼中,它爲主機和@fsockopen使用相同的地址,因此不會使用常量。根據文檔,這是將@fsockopen連接到代理的唯一方式,因此不能使用全局。 – Rudiger 2011-05-15 22:38:56