Ошибка подключения через прокси в плагине WordPress через fsockopen - PullRequest
2 голосов
/ 10 мая 2011

Я использую плагин статистики для WordPress, который использует базовый класс WordPress IXR_Client в классе IXR. Хотя в соответствии с документацией он использует конфигурацию прокси, найденную в wp-config.php, я не вижу, как это возможно, поскольку он использует тот же адрес для хоста, что и в fsockopen (глядя на fsockopen, это должен быть адрес прокси)

Я изменил fsockopen так, чтобы он указывал на мой прокси-сервер, и теперь он получает ответ от прокси-сервера, хотя ошибка POST TCP_DENIED / 400 4139: неверный запрос - 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>

Если вам нужна дополнительная информация, дайте мне знать.

Приветствия

Ответы [ 2 ]

1 голос
/ 20 июля 2011

Хитрость заключается в добавлении http://your.domain.name/ к запросу POST (т. Е. Не только POST / name-of-file, как class-IXR.php имеет по умолчанию), по крайней мере, по следующей ссылке: http://thedeadone.net/how-to/livejournal-and-wordpress/

Я попробовал это, и это, безусловно, работает.

0 голосов
/ 15 мая 2011

В WP есть несколько связанных с прокси констант, а также целый ряд других констант, используемых в wp-includes / class-http.php. Вы пытались установить любой или все из них? e.g.:

WP_PROXY_HOST
WP_PROXY_PORT
WP_PROXY_USERNAME
WP_PROXY_PASSWORD
WP_PROXY_BYPASS_HOSTS
...