WEB开发网
开发学院手机开发Android 开发 Android 调用 Web Service 阅读

Android 调用 Web Service

 2010-05-06 16:09:00 来源:WEB开发网   
核心提示:先用随便什么东西做出个 Web Service,假设得到的Web Service地址如下:http://192.168.0.100/android/WebService1.asmx而这个 Web Service 中,Android 调用 Web Service,提供了一个 Sum 函数,其实现如下:public int

先用随便什么东西做出个 Web Service,假设得到的Web Service地址如下:

http://192.168.0.100/android/WebService1.asmx

而这个 Web Service 中,提供了一个 Sum 函数,其实现如下:

public int Sum(int a, int b) {

return a + b;

}

则在 Android 中,可以按以下方式调用

public void callWS() throws ParserConfigurationException {

final String SERVER_URL = "http://192.168.0.100/android/WebService1.asmx/Sum";

HttpPost request = new HttpPost(SERVER_URL);

List params = new ArrayList();

params.add(new BasicNameValuePair("A", "1"));

params.add(new BasicNameValuePair("B", "2"));

try {

request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));

HttpResponse httpResponse = new DefaultHttpClient().execute(request);

String result = "";

if (httpResponse.getStatusLine().getStatusCode() != 404) {

result = EntityUtils.toString(httpResponse.getEntity());

}

new AlertDialog.Builder(this).setTitle("Hint").setMessage(result)

.setPositiveButton("OK", null).show();

} catch (Exception e) {

new AlertDialog.Builder(this).setTitle("Hint").setMessage(

e.getMessage()).setPositiveButton("OK", null).show();

}

}

以上方法可以正确的得到 Web Service 的返回值,但是那是一个完整的 xml,需要进一步解析从而得到想要的结果

解析的方法如下所示:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

DocumentBuilder builder = factory.newDocumentBuilder();

InputStream is = new ByteArrayInputStream(result.getBytes("UTF-8"));

Document dom = builder.parse(is);

String res = dom.getDocumentElement().getChildNodes().item(0).getNodeValue();

Tags:Android 调用 Web

编辑录入:coldstar [复制链接] [打 印]
赞助商链接