2014-01-10 26 views
1

我有一個奇怪的問題,新的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是有效的,所以這是不建議的

回答

0

您的代理響應緩存或代理響應中的日期,因爲您確實在12月20日執行了API調用?

如果它被緩存,也許你的代理正在從一個實際的無效請求緩存回覆?

+0

緩存似乎不是問題。 Http工作,所以我想我通過代理HTTPS有問題 – spankmaster79