首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 向 ASP.NET 傳遞參數:GET/POST 請求實作範例

     編輯:程式設計綜合問答

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 自動解碼。
  • 網路請求必須在子執行緒,嚴禁主執行緒阻塞。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved