我使用的下面過程中,調用web服務肥皂從機器人
1)創建用於此模板的SOAP請求和替代用戶提供的值在運行時創建一個有效的請求字符串模板。 2)將此字符串包裝在一個StringEntity中,並將其內容類型設置爲text/xml 3)在SOAP請求中設置此實體。
與httppost我張貼請求的幫助下,
我使用的是演示Web服務從w3schools.com
網址--->
http://www.w3schools.com/webservices/tempconvert.asmx
我試過是,
HttpPost httppost = new HttpPost("http://www.w3schools.com/webservices/tempconvert.asmx");
StringEntity se;
try {
SOAPRequestXML="<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tem=\"http://tempuri.org/\"><soapenv:Header/><soapenv:Body><tem:CelsiusToFahrenheit><!--Optional:--><tem:Celsius>30</tem:Celsius></tem:CelsiusToFahrenheit></soapenv:Body></soapenv:Envelope>";
Log.d("request is ", SOAPRequestXML+"!!!");
se = new StringEntity(SOAPRequestXML,HTTP.UTF_8);
se.setContentType("text/xml");
httppost.setHeader("Content-Type","application/soap+xml;charset=UTF-8");
httppost.setEntity(se);
HttpClient httpclient = new DefaultHttpClient();
BasicHttpResponse httpResponse =
(BasicHttpResponse) httpclient.execute(httppost);
HttpEntity resEntity = httpResponse.getEntity();
t.setText(EntityUtils.toString(resEntity));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我可以t Ø得到的soapUI響應,所以肯定的代碼是錯誤的,因爲在模擬器我得到的輸出,
「因爲媒體類型不受支持的服務器不能服務請求」。
我是傳遞正確的參數HttpPost的構造還是我做出了正確的XML request.I嘗試了很多,但無法弄清楚。
謝謝
httppost.setHeader(「Accept-Charset」,「utf-8」); working.Thanks – 2013-05-08 07:04:22