微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐