我有一個奇怪的問題,新的Twitter的API。我遵循這個question的非常好的答案在twitter中創建搜索並使用here中的TwitterAPIExchange.php。Twitter Api搜索不能通過代理工作
一切正常,只要我用CURL從我的服務器直接調用它。但在現場環境中,我必須使用具有基本身份驗證的代理。
所有我做的是代理認證添加到performRequest功能:
if(defined('WP_PROXY_HOST') && defined('WP_PROXY_PORT') && defined('WP_PROXY_USERNAME') && defined('WP_PROXY_PASSWORD'))
{
$options[CURLOPT_HTTPPROXYTUNNEL] = 1;
$options[CURLOPT_PROXYAUTH] = CURLAUTH_BASIC;
$options[CURLOPT_PROXY] = WP_PROXY_HOST . ':' . WP_PROXY_PORT;
$options[CURLOPT_PROXYPORT] = WP_PROXY_PORT;
$options[CURLOPT_PROXYUSERPWD] = WP_PROXY_USERNAME . ':' . WP_PROXY_PASSWORD;
}
沒有代理我得到一個JSON響應。但隨着代理,我得到:
HTTP/1.1 200已建立的連接 HTTP/1.1 400錯誤的請求 內容類型:應用程序/ JSON的;字符集= UTF-8 日期:星期五,二零一三年十二月二十零日九點22分59秒UTC 服務器:TFE 嚴格傳輸的安全性:最大年齡= 631138519 內容長度:61 代理連接:保持活動 連接:Keep-Alive Set-Cookie:guest_id = v1%3A138753137985809686;域= .twitter.com;路徑= /;期滿=星期日,20日 - 12月2015年9時22分59秒UTC 年齡:0 { 「錯誤」:[{ 「消息」: 「壞的認證數據」, 「代碼」:215}]}
我試圖在Charles Proxy的本地環境中模擬一個代理,並且它工作正常。
我假設代理要麼不發送身份驗證頭,要麼以某種方式更改數據。
任何人只要有一個線索....
編輯: 使用HTTP API的作品,但HTTPS失敗。我試過CURLOPT_SSL_VERIFYPEER和CURLOPT_SSL_VERIFYHOST設置爲FALSE,但Twitter的SSL是有效的,所以這是不建議的
緩存似乎不是問題。 Http工作,所以我想我通過代理HTTPS有問題 – spankmaster79