org.apache.http.conn.HttpHostConnectException: Connection to https://10.0.2.2:8080 refused
10.0.2.2:模擬器專用,映射宿主機 127.0.0.1。192.168.x.x),不能用 127.0.0.1 或 localhost。https://<宿主機IP>:8080/test/AddMessage 能否正常響應?webapps/test/WEB-INF/web.xml 中 Servlet 映射是否為 /AddMessage。<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
// 使用 HttpURLConnection 替代已棄用的 DefaultHttpClient
URL url = new URL("https://192.168.1.100:8080/test/AddMessage");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
try (OutputStream os = conn.getOutputStream()) {
os.write(postData.getBytes("UTF-8"));
}
int code = conn.getResponseCode();
if (code == 200) {
// 處理響應
}
adb logcat 過濾 System.err 看完整堆棧。logs/localhost_access_log.txt 確認請求是否到達。curl -v https://<IP>:8080/test/AddMessage 在電腦端模擬請求。90% 的「連不上」屬於 IP 選錯或防火牆攔截,按清單逐項核對通常能在 10 分鐘內定位。