Android – 使用HttpURLConnection发布XML数据

我遇到了一些负面因素,需要一些帮助(请)!

我是Android Dev(和一般编码)的新手.基本上我需要使用HttpURLConnection将XML数据发布到URL,但无法使其工作.我已经让我的应用程序读取并从GET请求中篡改XML数据,但很难找到POST部分.

我已经看过创建一个NameValuePair数组,但不知道如何使用我需要发布的XML结构来完成此操作.

XML数据将如下所示:

<Sheet>
  <Job>jobNumber</Job> 
  <Task>taskNumber</Task> 
  <UserID>3</UserID> 
  <Date>systemDateFormatted</Date> 
  <Minutes>timetoLog</Minutes> 
  <Note>userNote</Note>
</Sheet>

到目前为止,我已经为我的代码了.

try {
        URL url = new URL(theUrl);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setReadTimeout(10000);
        conn.setConnectTimeout(15000);
        conn.setRequestMethod("POST");
        conn.setDoInput(true);
        conn.setDoOutput(true);


        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("Sheet",null));
        params.add(new BasicNameValuePair("Job",jobNumber));
        params.add(new BasicNameValuePair("Task",taskNumber));
        params.add(new BasicNameValuePair("UserID",String.valueOf(yourUserID)));
        params.add(new BasicNameValuePair("Date",systemDateFormatted));
        params.add(new BasicNameValuePair("Minutes",timeElapsed));
        params.add(new BasicNameValuePair("UserNote","Test Note"));
        params.add(new BasicNameValuePair("Sheet",null));

我不确定我是否正确理解了NamedValuePair.为我的XML数据创建一个字符串并以这种方式POST更好吗?

谢谢!

解决方法

是的,POST数据作为您请求的有效负载.例如

URL url = new URL(theUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
try {
    conn.setReadTimeout(10000);
    conn.setConnectTimeout(15000);
    conn.setRequestMethod("POST");
    conn.setDoInput(true);
    conn.setDoOutput(true);
    String body = "<xml...</xml>";
    OutputStream output = new bufferedoutputstream(conn.getoutputStream());
    output.write(body.getBytes());
    output.flush();
finally {
    conn.disconnect();
}

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...