Android,通过 HTTP POST (SOAP) 发送 XML

xmlAndroid

1个回答

写回答

团员儿妈

2025-06-23 16:35

+ 关注

XML
XML

发送 XML 数据是在 Android 开发中常见的需求之一。通过 HTTP POST 请求发送 XML 数据可以使用 SOAP 协议。本文将介绍如何在 Android 中使用自然语言发送 HTTP POST 请求,并附带一个案例代码。

案例代码:

Java

import Android.os.AsyncTask;

import Android.util.Log;

import Java.io.BufferedReader;

import Java.io.InputStreamReader;

import Java.io.OutputStream;

import Java.net.HttpURLConnection;

import Java.net.URL;

public class SOAPRequestTask extends AsyncTask<String, Void, String> {

private static final String TAG = "SOAPRequestTask";

@Override

protected String doINBAckground(String... params) {

String urlStr = params[0];

String XMLData = params[1];

String response = "";

try {

URL url = new URL(urlStr);

HttpURLConnection connection = (HttpURLConnection) url.openConnection();

connection.setDoOutput(true);

connection.setRequestMethod("POST");

connection.setRequestProperty("Content-Type", "text/XML");

OutputStream outputStream = connection.getOutputStream();

outputStream.write(XMLData.getBytes());

outputStream.flush();

outputStream.close();

int responseCode = connection.getResponseCode();

if (responseCode == HttpURLConnection.HTTP_OK) {

BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));

String line;

StringBuilder stringBuilder = new StringBuilder();

while ((line = reader.readLine()) != null) {

stringBuilder.append(line);

}

reader.close();

response = stringBuilder.toString();

} else {

Log.e(TAG, "HTTP response code: " + responseCode);

}

connection.disconnect();

} catch (Exception e) {

Log.e(TAG, "Exception: " + e.getMessage());

}

return response;

}

@Override

protected void onPostExecute(String result) {

Log.i(TAG, "Response: " + result);

// 处理服务器返回的响应数据

}

}

发送 XML 请求的步骤:

1. 创建一个继承自 AsyncTask 的类,用于在后台发送 HTTP POST 请求并处理响应;

2. 在 doINBAckground 方法中执行网络请求的逻辑。首先创建 URL 对象,并打开连接。设置连接的属性,包括允许输出、请求方式和内容类型等。然后获取连接的输出流,并写入 XML 数据。发送请求后,获取响应码,如果为 HTTP_OK,则读取服务器返回的数据并保存在一个字符串中;

3. 在 onPostExecute 方法中处理服务器返回的响应数据。可以根据具体需求进行处理,如解析 XML 数据或更新 UI 界面等。

使用 AsyncTask 发送 SOAP 请求的示例:

Java

String url = "http://example.com/soap-endpoint";

String XMLData = "<soap:Envelope XMLns:soap=\"http://schemas.XMLsoap.org/soap/envelope/\">" +

"<soap:Body>" +

"<exampleRequest>" +

"<param1>value1</param1>" +

"<param2>value2</param2>" +

"</exampleRequest>" +

"</soap:Body>" +

"</soap:Envelope>";

new SOAPRequestTask().execute(url, XMLData);

上述代码中,url 变量表示 SOAP 服务的地址,XMLData 变量表示要发送的 XML 数据。使用 AsyncTask 的 execute 方法来执行网络请求。

本文介绍了在 Android 中通过 HTTP POST 请求发送 XML 数据的方法,并提供了一个使用 AsyncTask 的案例代码。开发者可以根据自己的需求进行定制化的处理,如解析服务器返回的 XML 数据或更新 UI 界面。通过这种方式,可以满足在 Android 开发中使用自然语言发送 SOAP 请求的需求。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号