2016-03-15 73 views
2

我在android系統使用一個寧靜的API爲我的應用程序,在此API中,我們必須反向代理我們通過我們的服務器應用程序的請求(我使用nginx的proxy_pass爲)因爲API只能回答一個註冊的IP。
當我使用curl通過nginx的反向代理髮送請求時,它會膨脹。
但是,當我的Android應用程序發送一個請求,它使用loopj.asynchttp,onSuccessful火災,但請求狀態是0,而答案的身體是空的,我完全糊塗了。它沒有返回任何數據,所以我可以找出它有什麼問題。 在來自移動設備的nginx請求日誌中出現,所以請求肯定會到達我的服務器,但返回的答案是有問題的。反向proxified請求返回空值loopj.AsyncHttp

回答

5

這些類型的問題,當服務器或循環J關閉您的連接發生。 它有幾個方面的原因:

  1. 防火牆
  2. 循環J的超時
  3. enginx的超時

的第一個原因,這取決於你的防火牆,但它很容易進行配置。

的循環J的時間了,你可以使用setTimeout函數像下面的代碼:

AsyncHttpClient client = new AsyncHttpClient(); 
client.setTimeout(//connection time you need as an integer); 

你可以用下面的鏈接來設置你的nginx超時配置: click here!

我希望這些提示可以幫助你。

+0

我如何研究這些問題? – FazeL

+0

我編輯了我的答案。它有幫助嗎? –

+0

謝謝,因爲我的服務器很慢,loopj的超時時間不夠。 我增加了它,並解決了問題。 – FazeL