簡體   English   中英

無法從Android設備訪問localhost Web服務

[英]Cannot access localhost web service from Android device

我已經為自己的測試目的使用CakePHP構建了一個Web服務。

現在,我使用真正的Android設備連接我的Web服務(@localhost)。 最初嘗試時,我設法加載了測試頁。 然后,我關閉了Apache服務器並對其進行了測試,以確保它不可用。 測試完成后,我再次重新啟動了Apache。 但是,此后我的Android設備無法加載我的頁面(網頁不可用)。 我的Web服務文件夾上有摘要式身份驗證,第一次嘗試時,它已正確執行...

到目前為止,我所做的是:
1.使用我的真實Android設備(而不是模擬器)連接我的本地主機( http://192.168.xxx.xxx )。
2.彈出摘要認證。
3.輸入用戶名和密碼。 連接成功。
4.關閉Apache服務器。
5.嘗試再次連接我的本地主機(當然,“網頁不可用”)。
6.重新啟動Apache服務器。
7.嘗試再次連接我的本地主機(重新加載不再起作用...)

起初我以為可能是緩存問題之類的。 因此,我清除了Android網絡瀏覽器的所有緩存和所有表格數據,然后嘗試重新加載。 但是它再也不會重新加載。 然后,我嘗試從另一台PC連接,然后成功連接。 僅從Android設備無法重新加載我的頁面。

有什么我可以解決的問題嗎? 我需要使用真正的Android設備進行調試,因為仿真器的工作速度太慢。 我四處搜尋並發現了幾個類似的問題,但是沒有一個問題沒有幫助,因為就我而言,我曾經成功連接到該服務。 只是一次未能重新加載頁面而再也沒有加載過...

提前致謝。

*編輯*我剛剛使用Android模擬器嘗試了相同的順序,並成功重新加載了...我什至為我的真實設備嘗試了另一個瀏覽器(海豚瀏覽器),但仍然無法加載我的頁面...

可能是Web服務器在回送接口上偵聽,但不在網絡接口上偵聽。 這意味着對127.0.0.1localhost命中將起作用,但192.168.xxx.xxx將不起作用(無論是來自localhost,LAN還是WAN)。

要確定服務器正在偵聽哪個接口,請在此處查找有關偵聽端口的命令(我使用了lsof -Pan -i tcp -i udp )。 然后在列表中查找您的服務器進程。 對於lsof命令,如果對於端口8888,您看到類似TCP *:8888 (LISTEN)則您的服務器正在偵聽所有接口。 但是,如果您看到的是類似TCP [::127.0.0.1]:8888 (LISTEN)那么您已經確定了問題所在!

解決問題的下一步是設置服務器的運行配置,以監聽所有接口。 我對CakePHP一無所知,但是如果您可以指定IP地址,那么您可能想嘗試0.0.0.0 通常,您可以在允許您指定監聽端口的位置附近執行此操作。 因此,如果您有如下配置:

--port 8888

然后,您可以嘗試:

--port 8888 --address 0.0.0.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM