我爲Android應用程序實現了Web服務。 Web服務正在我的本地主機(192.168.1.2)上運行。使用Android模擬器,我成功連接到Web服務。我試圖使用調試模式將我的Android設備連接到Web服務,但它不起作用。所以我的問題是,如果可以在不使用真實IP的情況下將Android設備連接到在本地主機(192.168.1.2)上運行的此Web服務?將Android設備連接到本地主機上的Web服務
回答
那麼你的本地主機是127.0.0.1(或:: 1),你的局域網IP是192.168.1.2。在您的局域網中連接的每臺電腦/設備都可以通過IP連接到您的網絡服務192.168.1.2
您的Android設備必須在同一局域網內連接,可能通過Wifi連接,因此它可以與192.168.1.2進行通話。
如果你不能在同一個局域網下連接你的Android設備,例如你只有一個3g的連接,你需要使用你的路由器/防火牆來重定向所有來自公共ip的流量(也許只是http流量)你私有IP(192.168.1.2)
希望這有助於
這有助於...... thnks ... – Shachi 2013-05-01 07:04:31
你已經解決問題了嗎?我也遇到了像你這樣的問題。這些是我已經完成的步驟:
- 拔掉網線或從電腦上關閉任何其他網絡連接。
- 使用USB將您的android手機連接到您的電腦。
- 打開usb tethering
- 回到您的電腦。檢查你的IP。我的是192.168.42.37
- 檢查你的電腦上的web服務應用程序。讓我們說http://192.168.42.37/webserviceapp
- 回到你的Android手機。試試這個網址http://192.168.42.37/webserviceapp
現在你可以從你的手機訪問你的電腦上的web服務應用程序。
加1爲「打開USB tethering」 – Mzn 2013-03-13 21:05:29
@Zulkifli確實遵循這個步驟,但力量工作,雖然... [這是我的問題](http://stackoverflow.com/questions/21879151/calling-web-service-from-android-device)我找到答案...請幫助 – 2014-02-19 12:19:18
對於OS X用戶來說,一個很好的USB共享方式在這裏描述:[HoRNDIS](http://joshuawise.com/horndis) – averasko 2014-03-03 16:51:17
如果你不想在互聯網上公開你的DEV web服務,我同意其他答案作爲好方法。但是,如果您只是公開Web服務,則更容易。有很多免費的DNS服務,但我發現沒有IP是最容易設置的。我用它來達到你所問的目的;所以我可以在真實設備上使用我的DEV web服務進行測試。
如果您選擇使用no-ip(我與該公司沒有任何關係,這只是我用過並熟悉的那個),您可以免費獲得一個可公開訪問的URL,如http://MyExampleWebServer.no-ip-org, ip有一個你可以安裝的實用程序,即使你在一個動態IP的後面,它也會始終保持與該URL關聯的正確的外部IP。如果你在家裏工作,那麼你只需要確保你將端口80的流量轉發到你的內部192.x.x.x IP地址(或者你使用的任何端口;對於ssl可能是443)。
就這麼簡單,現在您可以從任何可以訪問互聯網的設備中訪問該web服務。
我還沒有使用它,但我相信dyndns也提供了類似的服務。
我已經在使用GasMask和Charles Proxy Server的Mac上完成了這項工作。你的手機和你的電腦必須在同一個網絡上。
表示您想要訪問的網絡服務網址爲http://api.xyz.com,您首先使用GasMask將該網址指向您的本地主機,然後使用Charles設置代理服務器。然後,您轉到手機上的設置,進入Wi-Fi,長按所連接的網絡,選擇修改網絡,然後輸入Charles給您的代理設置。
我會拋出我的過程,因爲沒有任何關於SO的工作。下面是我對我的物理Android設備連接到Web服務在本地主機上我的筆記本電腦(連接到電話)運行步驟:
Enable USB debugging在Android設備上
運行您Web服務在您的機器上。在本地主機上我的Web服務運行,3000端口在發展:
http://localhost:3000/api/...
運行
ifconfig
(UNIX),或ipconfig
(Windows)中- 您LAN界面上找到你的機器的
inet
地址。 Mine是10.0.0.121,用於接口wlan0
。外部,它是68.43.XX.XXX,它是您要使用的地址而不是。 - 使用LAN IP,因爲要連接到您的網絡服務,否則你可能會得到一個
econnrefused
(拒絕連接)錯誤是由於防火牆規則 - 與IP地址建立你的HTTP URL,以及端口您的Web服務正在運行。對我來說,這是
http://10.0.0.121:3000/api/...
當您啓動您的應用程序,你應該在日誌本地Web服務,Wireshark的,等的連接,你應該看到在你的Android應用程序所需的活性/數據。
我有同樣的問題,研究了很多,然後發現你必須明確地進行防火牆設置的更改。您的防火牆阻止您的代碼從外部來源訪問。所以,你需要做的就是進入防火牆設置,爲入站和出站添加端口80(在我的情況下,因爲我使用Apache http Server)。現在,您可以在手機的瀏覽器上測試它http://192.16。 **:80/
如果您在您的系統上從Android模擬器,那麼你必須使用 http://10.0.2.2:8080/ 由於Android模擬器,虛擬機內運行(QEMU)指本地主機,因此在這裏127.0.0.1或本地主機將是仿真器自己的回送地址。
該解決方案是在Eclipse
GAE開發服務器第1步:獲取局域網IP
轉到您的Windows命令控制檯(按下Win + R,然後輸入 「cmd」)。在控制檯中輸入「ipconfig」。你會看到一個顯示列表。在無線局域網適配器Wi-Fi下,獲取IPv4地址。這將是東西192.168.x.x
LAN IP:192.168.x.X
第2步:
,請轉到Eclipse,打開配置的服務器
GAE開發服務器在屬性 - >綁定到本地接口地址,輸入局域網IP地址,並保存。
3步:
現在,您可以通過
8888訪問GAE服務器 - 指端口號,如在GAE開發服務器
爲了用自己的服務器主機,而不是IP地址與端口訪問本地網絡服務,做這些以下步驟使用此服務地址:
- 確保你的Android設備和你的本地機器在同一個網絡上。
- 在您的Mac,Linux或任何其他代理服務器上安裝SquidMan。
- 將代理服務器的HTTPPort(例如5555)和客戶端(例如192.168.0.0/24)配置到您自己的網絡掩碼中,然後運行代理服務器。
您在以下位置使用的Web服務:
a。網頁瀏覽器:從修改WiFi網絡配置Android設備的代理設置。
b。 Android應用程序: 爲您的HTTP客戶端設置代理。如果您使用的是Volley,請查看:Volley Behind a Proxy server。
- 您可以通過使用任何網址,你正在使用你的主機上連接到Web服務現在連接到它(前http://my-local-machine.com)
提示:如果你有4xx應答碼,確保您的網絡服務允許來自其他非本地主機的連接。
在我的情況下,這些解決方案都不起作用,因爲Windows防火牆會阻止它,但是在防火牆上放置規則並沒有影響。
在我的情況下,問題是我的筆記本電腦與Wifi連接,Windows有Wifi連接,如公共網絡。我必須將網絡連接更改爲專用網絡。 http://www.comofuncionatodo.net/tecnologia/informatica/como-cambiar-de-red-publica-a-red-privada-en-windows-10/
- 1. Android:連接到本地主機上的服務器時連接超時設備
- 2. libcurl&android連接到本地主機上的web服務
- 3. 與本地主機服務器的Android設備連接
- 4. 從Web服務連接本地主機
- 5. 連接到本地主機web服務的Android模擬器[C#]
- 6. 連接到本地主機:3000在Android設備上拒絕
- 7. 無法從Android設備訪問本地主機web服務
- 8. 將android設備連接到本地服務器xampp
- 9. Android設備將無法連接到本地服務器
- 10. 無法連接到Visual Studio的本地主機Web服務器
- 11. 無法連接到Visual Studio的本地主機Web服務器
- 12. 通過使用Web服務在本地連接android設備
- 13. Android SDK連接到主機上的Web服務器
- 14. 訪問本地主機服務器連接的Android移動設備
- 15. Android設備無法連接到本地主機
- 16. Android設備無法連接到本地主機
- 17. 無法連接到本地主機上的SQL服務器
- 18. Windows服務無法連接到本地主機上的SQL Server
- 19. 節點連接到本地主機上的Xmpp服務器
- 20. 將Android直接連接到本地主機上的sql server而不使用web服務
- 21. android studio無法連接到本地主機WCF服務
- 22. 未將設備或資源(本地主機)設置爲接受端口「萬維網服務(HTTP)」上的連接「
- 23. 連接通過Android設備的本地主機
- 24. 通過wifi將ios設備連接到本地服務器
- 25. 機器人連接到本地主機從Connectify的我consure Web服務
- 26. 動態Web服務項目 - 只能連接在本地主機
- 27. 從網絡外的設備連接到本地主機
- 28. 連接Android手機本地服務器
- 29. 將套接字連接到設備上的本地地址
- 30. 無法連接到本地主機上Windows機器上的Couchbase服務器8091
+1。 – Shachi 2013-05-01 06:18:48
https://developers.google.com/web/tools/chrome-devtools/remote-debugging/local-server – Mateusz 2017-02-20 11:04:52