java.net.ConnectException


真機測試時,在進行解析Apache service上的xml文件的時候遇到了網絡連接的錯誤

(1)一開始寫的url是​URL url = new URL("http://192.168.1.101/get_data.xml");

報錯:java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 3229) after 6000ms: isConnected failed: ECONNREFUSED (Connection refused)

原因是因為Android模擬器本身把自己當做了localhost或127.0.0.1,而此時我們又通過localhost或127.0.0.1訪問本地服務器,所以會拋出異常了。解決方法:可以用10.0.2.2代替127.0.0.1和localhost;

​(2)然后我把URL改成了​​URL url =

new URL("http://10.0.2.2/get_data.xml");

報錯:​java.net.ConnectException: failed to connect to /10.0.2.2 (port 80): connect failed: ETIMEDOUT (Connection timed out)

原因是:

​​1. http://127.0.0.1:8088/jsonProject/images/picture.png

2. http://localhost:8088/jsonProject/images/picture.png

3. http://192.168.0.100/jsonProject/images/picture.png(IP地址略有改動)

以上三種URL在聯網時都可以通過瀏覽器訪問到picture.png這張圖片。仔細 觀察不難發現,不同之處在於紅色字體的部分,第1和第2個URL是本地訪問方式,也就是說前兩種訪問方式不需要通過網絡。第三種URL需要聯網才能正常訪 問,也就是說只要你的服務器開着,任何人都可以通過網絡使用該URL訪問到picture.png這一資源。使用真機測試時,你的真機也就相當於脫離於你 的pc之外的另外一設備,所以說當你需要連接到服務器時只能使用第三種URL方式。即你需要使用你的真實IP地址。(真實ip地址查看方式:在命令行窗口 輸入:ipconfig即可查看你的IPv4地址)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM