2011-05-30 181 views
45

我爲Android應用程序實現了Web服務。 Web服務正在我的本地主機(192.168.1.2)上運行。使用Android模擬器,我成功連接到Web服務。我試圖使用調試模式將我的Android設備連接到Web服務,但它不起作用。所以我的問題是,如果可以在不使用真實IP的情況下將Android設備連接到在本地主機(192.168.1.2)上運行的此Web服務?將Android設備連接到本地主機上的Web服務

+4

+1。 – Shachi 2013-05-01 06:18:48

+0

https://developers.google.com/web/tools/chrome-devtools/remote-debugging/local-server – Mateusz 2017-02-20 11:04:52

回答

13

那麼你的本地主機是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)

希望這有助於

+0

這有助於...... thnks ... – Shachi 2013-05-01 07:04:31

32

你已經解決問題了嗎?我也遇到了像你這樣的問題。這些是我已經完成的步驟:

  1. 拔掉網線或從電腦上關閉任何其他網絡連接。
  2. 使用USB將您的android手機連接到您的電腦。
  3. 打開usb tethering
  4. 回到您的電腦。檢查你的IP。我的是192.168.42.37
  5. 檢查你的電腦上的web服務應用程序。讓我們說http://192.168.42.37/webserviceapp
  6. 回到你的Android手機。試試這個網址http://192.168.42.37/webserviceapp

現在你可以從你的手機訪問你的電腦上的web服務應用程序。

+0

加1爲「打開USB tethering」 – Mzn 2013-03-13 21:05:29

+0

@Zulkifli確實遵循這個步驟,但力量工作,雖然... [這是我的問題](http://stackoverflow.com/questions/21879151/calling-web-service-from-android-device)我找到答案...請幫助 – 2014-02-19 12:19:18

+0

對於OS X用戶來說,一個很好的USB共享方式在這裏描述:[HoRNDIS](http://joshuawise.com/horndis) – averasko 2014-03-03 16:51:17

1

如果你不想在互聯網上公開你的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也提供了類似的服務。

1

我已經在使用GasMask和Charles Proxy Server的Mac上完成了這項工作。你的手機和你的電腦必須在同一個網絡上。

表示您想要訪問的網絡服務網址爲http://api.xyz.com,您首先使用GasMask將該網址指向您的本地主機,然後使用Charles設置代理服務器。然後,您轉到手機上的設置,進入Wi-Fi,長按所連接的網絡,選擇修改網絡,然後輸入Charles給您的代理設置。

4

我會拋出我的過程,因爲沒有任何關於SO的工作。下面是我對我的物理Android設備連接到Web服務在本地主機上我的筆記本電腦(連接到電話)運行步驟:

  1. Enable USB debugging在Android設備上

  2. 運行您Web服務在您的機器上。在本地主機上我的Web服務運行,3000端口在發展:http://localhost:3000/api/...

  3. 運行ifconfig(UNIX),或ipconfig(Windows)中

  4. LAN界面上找到你的機器的inet地址。 Mine是10.0.0.121,用於接口wlan0。外部,它是68.43.XX.XXX,它是您要使用的地址而不是
  5. 使用LAN IP,因爲要連接到您的網絡服務,否則你可能會得到一個econnrefused(拒絕連接)錯誤是由於防火牆規則
  6. 與IP地址建立你的HTTP URL,以及端口您的Web服務正在運行。對我來說,這是http://10.0.0.121:3000/api/...

當您啓動您的應用程序,你應該在日誌本地Web服務,Wireshark的,等的連接,你應該看到在你的Android應用程序所需的活性/數據。

2

我有同樣的問題,研究了很多,然後發現你必須明確地進行防火牆設置的更改。您的防火牆阻止您的代碼從外部來源訪問。所以,你需要做的就是進入防火牆設置,爲入站和出站添加端口80(在我的情況下,因爲我使用Apache http Server)。現在,您可以在手機的瀏覽器上測試它http://192.16 **:80/

-3

如果您在您的系統上從Android模擬器,那麼你必須使用 http://10.0.2.2:8080/ 由於Android模擬器,虛擬機內運行(QEMU)指本地主機,因此在這裏127.0.0.1或本地主機將是仿真器自己的回送地址。

0

該解決方案是在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 Server

GAE開發服務器在屬性 - >綁定到本地接口地址,輸入局域網IP地址,並保存。

3步:

現在,您可以通過

http://192.168.x.x:8888/

8888訪問GAE服務器 - 指端口號,如在GAE開發服務器

22

提到這是更簡單google支持的方式!

  • 通過USB將手機連接到電腦,並啓用USB調試
  • 在計算機上打開Chrome瀏覽器並輸入準確地址爲:chrome://inspect/#devices enter image description here
  • 現在你可以在你的計算機端口通過鏈接到您的設備端口端口轉發按鈕。在我的電腦上,我的服務地址是localhost:61437,我只是將它連接到設備的8081端口。 Remeber從我的手機瀏覽器中選中 '啓用端口轉發' 複選框從服務

enter image description here

  • 屏幕在我的電腦上(localhost:61437enter image description here

  • 屏幕,同樣的服務(localhost:8081 )。就是這樣。您還在你的應用程序 enter image description here

+0

https://developers.google.com/web/tools/chrome-devtools/remote-debugging/local-server – Mateusz 2017-02-20 11:04:37

+0

這工作得很好。我在我的hosts文件中有一個條目,似乎打破了其他解決方案。這工作。 – jcollum 2018-03-07 23:58:14

0

爲了用自己的服務器主機,而不是IP地址與端口訪問本地網絡服務,做這些以下步驟使用此服務地址:

  1. 確保你的Android設備和你的本地機器在同一個網絡上。
  2. 在您的Mac,Linux或任何其他代理服務器上安裝SquidMan
  3. 將代理服務器的HTTPPort(例如5555)和客戶端(例如192.168.0.0/24)配置到您自己的網絡掩碼中,然後運行代理服務器。
  4. 您在以下位置使用的Web服務:

    a。網頁瀏覽器:從修改WiFi網絡配置Android設備的代理設置。

    b。 Android應用程序: 爲您的HTTP客戶端設置代理。如果您使用的是Volley,請查看:Volley Behind a Proxy server

  5. 您可以通過使用任何網址,你正在使用你的主機上連接到Web服務現在連接到它(前http://my-local-machine.com

提示:如果你有4xx應答碼,確保您的網絡服務允許來自其他非本地主機的連接。

相關問題