2012-08-22 61 views
1
private String METHOD_NAME = "schedule"; 
private String NAMESPACE = "http://calculate.backend.web.org"; 
private String SOAP_ACTION = NAMESPACE + METHOD_NAME; 
private static final String URL = "http://192.168.0.4:8080/AndroidBackEnd/services/Calculate?wsdl"; 

這我使用從通過KSOAP客戶端連接到我的網絡服務..我在這裏硬編碼的IP地址在URL .. 當過我切換到代碼新網絡我需要更改應用程序的IP地址工作KSOAP2連接硬編碼

任何人都可以共享此解決方案嗎?

+0

- 在該計算機中設置靜態IP地址。 - 創建一個指向該地址的DNS –

+0

任何示例參考如何做到這一點? –

回答

1

例如:

選擇從例如遊離Dynamic DNS服務this list。你得到一個地址,如http://myserver.dyndns.org,你可以設置指向你的IP地址。然後用新地址替換硬編碼的IP。

private static final String URL = "http://myserver.dyndns.org/AndroidBackEnd/services/Calculate?wsdl"; 

動態DNS實際上是intendet的IP非常規律是不會忽略的變化(這可能需要將IP是由這些服務的定期更新)。如果你不需要尋找一個經常的DNS hosting service

+0

Zapl--我得到了一個地址,我將IP映射到了它......新的網址在我的本地網絡上工作,但是,當我嘗試從不同的互聯網連接時,它並沒有工作 –

+1

啊你有一個本地IP。那麼你需要通過portforwarding或任何可能你有互聯網和使用你的公共互聯網IP爲dns服務公開的服務器。所以你從DNS地址連接到你的公共IP到本地IP。 – zapl

1

可以有兩種方法來解決這個問題。

  1. (不是很優雅):代替硬編碼,從用戶輸入。這部分AndroidBackEnd/services/Calculate?wsdl將始終保持不變,因此您只需要託管Web服務的系統的IP地址並將其與Contant部分連接起來即可。在代碼中保存一個默認值,並在沒有輸入時運行該值。否則,連接到將由用戶輸入IP的機器。

  2. (正如其他人所建議的那樣):創建您自己的域。 (很可能你可能需要買一個,還有一些人仍然免費提供,但你需要搜索出來,或者如果你願意購買,那麼你可以查看http://www.dotster.com/http://www.networkSolutions.com)。註冊域名後,您需要輸入提供Web服務的系統的靜態IP,以便將DNS指向您的系統。

+0

我已經做了第一個選擇..但我一直在尋找更好的方法:) –

+0

是的,那麼第二個將是一個更好的選擇。 – Swayam