GET 請求 (最簡單)
Android 端
String url = "https://10.0.2.2:8080/Receive.aspx?id=" + id + "&name=" + URLEncoder.encode(name, "UTF-8");
new Thread(() -> {
try {
HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
conn.setRequestMethod("GET");
int code = conn.getResponseCode();
if (code == 200) {
String resp = new BufferedReader(new InputStreamReader(conn.getInputStream()))
.lines().collect(Collectors.joining("\n"));
runOnUiThread(() -> Log.d("TAG", "Server: " + resp));
}
} catch (Exception e) { e.printStackTrace(); }
}).start();
ASP.NET 端
// Receive.aspx.cs
protected void Page_Load(object sender, EventArgs e) {
string id = Request.QueryString["id"];
string name = Request.QueryString["name"];
Response.Write("Received: " + id + ", " + name);
}
POST 請求 (適合大量/敏感資料)
Android 端 (OkHttp 推薦)
OkHttpClient client = new OkHttpClient();
RequestBody form = new FormBody.Builder()
.add("id", id)
.add("name", name)
.build();
Request request = new Request.Builder()
.url("https://10.0.2.2:8080/Receive.aspx")
.post(form)
.build();
client.newCall(request).enqueue(new Callback() {
@Override public void onResponse(Call call, Response response) {
Log.d("TAG", response.body().string());
}
@Override public void onFailure(Call call, IOException e) { e.printStackTrace(); }
});
ASP.NET 端
string id = Request.Form["id"];
string name = Request.Form["name"];
關鍵提醒
- 模擬器訪問本機用
10.0.2.2,實機用電腦區網 IP。
- Android 9+ 預設禁用明文 HTTP,需在
res/xml/network_security_config.xml 允許或改用 HTTPS。
- 中文參數務必
URLEncoder.encode,ASP.NET 端 Request.QueryString 自動解碼。
- 網路請求必須在子執行緒,嚴禁主執行緒阻塞。