Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android編程實現號碼歸屬地查詢的方法

Android編程實現號碼歸屬地查詢的方法

編輯:關於Android編程

本文實例講述了Android編程實現號碼歸屬地查詢的方法。分享給大家供大家參考,具體如下:

我們通過發送XML訪問 WebService就可以實現號碼的歸屬地查詢,我們可以使用代理服務器提供的XML的格式進行設置,然後請求提交給服務器,服務器根據請求就會返回給一個XML,XML中就封裝了我們想要獲取的數據。

發送XML

1.通過URL封裝路徑打開一個HttpURLConnection

2.設置請求方式,Content-Type和Content-Length

XML文件的Content-Type為:application/soap+xml; charset=utf-8

3.使用HttpURLConnection獲取輸出流輸出數據

WebService

1.WebService是發布在網絡上的API,可以通過發送XML調用,WebService返回結果也是XML數據

2.WebService沒有語言限制,只要可以發送XML數據和接收XML數據即可

3.http://www.webxml.com.cn/網站上提供了一些WebService服務,我們可以對其進行調用

4.http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo中提供了電話歸屬地查詢的使用說明

效果圖:

核心代碼:

public class XmlService {
  public String query(String num) throws Exception {
    InputStream in = this.getClass().getClassLoader().getResourceAsStream("query.xml");
    byte[] data = LoadUtils.load(in);
    String xml = new String(data);
    //替換
    xml = xml.replace("#", num);
    byte[] sendData = xml.getBytes("UTF-8");
    //發送到代理的地址上
    URL url = new URL("http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx");
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Type", "application/soap+xml; charset=utf-8");
    conn.setRequestProperty("Content-Length", String.valueOf(sendData.length));
    //將請求的xml發送出去
    conn.setDoOutput(true);
    conn.getOutputStream().write(sendData);
    //獲取從服務器傳回來的數據
    if (conn.getResponseCode() == 200)
      return parse(conn.getInputStream());
    return null;
  }
  //解析流拿到getMobileCodeInfoResult中的數據
  private String parse(InputStream inputStream) throws Exception {
    XmlPullParser parser = Xml.newPullParser();
    parser.setInput(inputStream, "UTF-8");
    //查找getMobileCodeInfoResult標簽,獲取標簽中的數據
    for (int event = parser.getEventType(); event != XmlPullParser.END_DOCUMENT; event = parser.next())
      switch (event) {
        case XmlPullParser.START_TAG:
          if ("getMobileCodeInfoResult".equals(parser.getName()))
            return parser.nextText();
      }
    return null;
  }
}

發送的xml封裝了電話號碼(query.xml):

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
 <soap12:Body>
  <getMobileCodeInfo xmlns="http://WebXml.com.cn/">
   <mobileCode>#</mobileCode>
   <userID></userID>
  </getMobileCodeInfo>
 </soap12:Body>
</soap12:Envelope>

希望本文所述對大家Android程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved