Android:发送xml作为文档对象,POST方法

时间:2010-12-28 08:02:22

标签: java android

我是编程新手,我需要一些帮助,请= /

Web服务已经编写但不是由我编写的。所以我要做的就是通过post方法通过web服务将xml作为文档对象发送。

我的代码:

public class send extends application {

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        HttpClient httpclient = new DefaultHttpClient();  
        HttpPost httppost = new HttpPost("http://app.local/test/");

        try {
            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();  
            DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();  
            Document document = documentBuilder.newDocument();  
            Element rootElement = document.createElement("packet");  
            rootElement.setAttribute("version", "1.2");  
            document.appendChild(rootElement);  

            Element em = document.createElement("imei");  
            em.appendChild(document.createTextNode("000000000000000"));  
            rootElement.appendChild(em);  

            em = document.createElement("username");   
            em.appendChild(document.createTextNode("5555"));  
            rootElement.appendChild(em);  

            HttpResponse response = httpclient.execute(httppost); 

        } catch (Exception e) {
            System.out.println("XML Pasing Excpetion = " + e);
        }
    }

}

1 个答案:

答案 0 :(得分:1)

我在android编程方面也很新。但是,我通过以下方式解决了那些问题。

public void send(){

    DefaultHttpClient httpClient = new DefaultHttpClient();

    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    nameValuePairs.add(new BasicNameValuePair("Servername", "abc"));
    nameValuePairs.add(new BasicNameValuePair("UserName", "123));
    nameValuePairs.add(new BasicNameValuePair("PassWord", "123"));
    nameValuePairs.add(new BasicNameValuePair("XML", getRequestTypeStringBuilder()));

    // Your every parameter name must be match with passing parameter, otherwise it throw 
    // an exception if it in case sensitive

    HttpPost httpPost = new HttpPost("http://app.local/DeviceLogin/");
    httpPost.addHeader("Accept", "text/xml");
    httpPost.setHeader("Content-Type","application/xml;charset=UTF-8"); 
    httpPost.setEntity(nameValuePairs);  

    HttpResponse response   = httpClient.execute(httpPost);       

    // Be aware, if your return data type is also xml, then using replace empty string,
    // otherwise, it my not retrieve or seen all data.

}

private static String getRequestTypeStringBuilder(){
     StringBuilder body = new StringBuilder("<?xml version=\"1.0 \"encoding=\"UTF-8\"?>");
    body.append("<!DOCTYPE My System\"Abc.dtd\">");
    // Please append detail your xml body in here;
    return body.toString();
}

希望这可以解决您的问题

“愿所有人都快乐”

问候和Metta, Ichirohang Limbu