public void perfomXML( final String url, final String user, final String pass, final Map<String, String> headers, final String xml) { DefaultHttpClient client = new DefaultHttpClient(); if ((user != null) && (pass != null)) { Log.d(LOGTAG, " " + HTTPRequestHelper.CLASSTAG + " user and pass present, adding credentials to request"); client.getCredentialsProvider().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(user, pass)); } // process headers using request interceptor final Map<String, String> sendHeaders = new HashMap<String, String>(); if ((headers != null) && (headers.size() > 0)) { sendHeaders.putAll(headers); } if (sendHeaders.size() > 0) { client.addRequestInterceptor(new HttpRequestInterceptor() { public void process(final HttpRequest request, final HttpContext context) throws HttpException, IOException { for (String key : sendHeaders.keySet()) { if (!request.containsHeader(key)) { Log.d(LOGTAG, " " + HTTPRequestHelper.CLASSTAG + " adding header: " + key + " | " + sendHeaders.get(key)); request.addHeader(key, sendHeaders.get(key)); } } request.addHeader("Content-Type", "application/atom+xml"); } }); } HttpPost method = new HttpPost(url); try { Log.d(LOGTAG,"xml conttent"+xml); // java.io.ByteArrayInputStream bai=new ByteArrayInputStream(xml.getBytes()); //ByteArrayEntity bae=new ByteArrayEntity(xml.getBytes()); StringEntity se=new StringEntity(xml,HTTP.UTF_8); //FileEnity fe=new FileEnity(); FileEntity fe=new FileEntity(new File("/sdcard/test.xml"),"text/xml"); //试过好几过都知道用哪一个好。 method.setEntity(fe); } catch (Exception e) { Log.d(LOGTAG,e.toString()); } execute(client, method); }