• Android 调用 Web Service


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

      http://192.168.0.100/android/WebService1.asmx

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

    publicint Sum(int a, int b) {

      
    return a + b;

      }

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

      publicvoid 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();
  • 相关阅读:
    c++ stl vector的push_back和emplace_back
    整数模n加法群和乘法群
    分享一下 jpeg的压缩算法总结
    利用位运算转换大小写
    java 作业题8
    java 作业题7
    uni-app开发经验分享二十二: uni-app大转盘思路解析
    微信小程序、微信公众号、H5之间相互跳转
    JS闭包的理解
    js原型详解
  • 原文地址:https://www.cnblogs.com/gzggyy/p/2086115.html
Copyright © 2020-2023  润新知