归属地数据源
http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx
webxml网站还支持其他请求方式 如SOAP等等
界面比较简单
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingTop="5dip" android:paddingLeft="5dip" android:paddingRight="5dip" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="手机号码:" /> <EditText android:id="@+id/phone_sec" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="textPhonetic" android:singleLine="true" android:hint="至少输入前七位" /> <Button android:id="@+id/query_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:text="查询" /> <TextView android:id="@+id/result_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal|center_vertical" /> </LinearLayout>
下面是MainActivity.java
package com.sphere.guishudi; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; import android.app.Activity; import android.app.ProgressDialog; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; /** * 手机号码归属地查询 */ public class MainActivity extends Activity { private EditText phoneSecEditText; private TextView resultView; private Button queryButton; private ProgressDialog proDialog; private Thread thread; //定义消息 private static final int NUMBER_FORMAT_ERROR = 0; private static final int QUERY_SUCCESS_MSG = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); phoneSecEditText = (EditText) findViewById(R.id.phone_sec); resultView = (TextView) findViewById(R.id.result_text); queryButton = (Button) findViewById(R.id.query_btn); proDialog = new ProgressDialog(MainActivity.this); //proDialog.setTitle("查询归属地"); proDialog.setMessage("正在查询,请您耐心等待..."); queryButton.setOnClickListener(new QueryOnClickListener()); } Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case NUMBER_FORMAT_ERROR: phoneSecEditText.setText(""); resultView.setText("您输入的号码格式有误"); break; case QUERY_SUCCESS_MSG: resultView.setText(msg.obj.toString()); proDialog.dismiss(); break; default: break; } } }; String phoneSec; class QueryOnClickListener implements OnClickListener{ @Override public void onClick(View arg0) { //得到手机号 phoneSec = phoneSecEditText.getText().toString().trim(); if("".equals(phoneSec)||phoneSec.length()<7){ //发送消息 显示查询结果的TextView清空 handler.sendEmptyMessage(NUMBER_FORMAT_ERROR); //锁定焦点 phoneSecEditText.requestFocus(); return; } // 查询手机号码(段)信息 //getRemoteInfo(phoneSec); thread = new Thread(new QueryThread()); thread.start(); proDialog.onStart(); proDialog.show(); } } class QueryThread implements Runnable{ @Override public void run() { getRemoteInfo(phoneSec); } } /** * 手机号段归属地查询 * @param phoneSec 手机号段 */ private void getRemoteInfo(String phoneSec) { // TODO Auto-generated method stub // 定义待请求的URL String requestUrl = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo"; // 创建HttpClient实例 HttpClient client = new DefaultHttpClient(); // 根据URL创建HttpPost实例 HttpPost post = new HttpPost(requestUrl); List<NameValuePair> params = new ArrayList<NameValuePair>(); // 设置需要传递的参数 params.add(new BasicNameValuePair("mobileCode", phoneSec)); params.add(new BasicNameValuePair("userId", "")); try { // 设置URL编码 post.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); // 发送请求并获取反馈 HttpResponse response = client.execute(post); // 判断请求是否成功处理 if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { // 解析返回的内容 String result = EntityUtils.toString(response.getEntity()); // 将查询结果经过解析后显示在TextView中 //resultView.setText(filterHtml(result)); Message msg = new Message(); msg.what = QUERY_SUCCESS_MSG; msg.obj = filterHtml(result); handler.sendMessage(msg); } } catch (Exception e) { e.printStackTrace(); } } /** * 使用正则表达式过滤HTML标记 * * @param source 待过滤内容 * @return */ private String filterHtml(String source) { if(null == source){ return ""; } return source.replaceAll("</?[^>]+>","").trim(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } }
记得在AndroidManifest.xml中配置<uses-permission android:name="android.permission.INTERNET" />
给予程序访问网络的权限。
使用子线程访问网络查询数据,handler做消息处理。
上面所讲解的只是HttpClient最基本的功能(发起POST请求);我们在浏览器客户端所执行的大多数操作HttpClient都能够模拟,例如:提交表单、查询数据、上传下载文档、页面跳转、Session存储等。
getMobileCodeInfo
获得国内手机号码归属地省份、地区和手机卡类型信息
输入参数:mobileCode = 字符串(手机号码,最少前7位数字),userID = 字符串(商业用户ID) 免费用户为空字符串;返回数据:字符串(手机号码:省份 城市 手机卡类型)。
测试结果:如下
本文向大家介绍Python手机号码归属地查询代码,包括了Python手机号码归属地查询代码的使用技巧和注意事项,需要的朋友参考一下 简单的一个例子,是以前用Dephi写的,前不久刚实现了一个在Python中使用Delphi控件来编写界面程序,于是趁热写一个类似的的查询方案。 本实例是通过www.ip138.com这个网站来查询的,这里需要的几个知识点,就是用Python模拟网页提交数据,获得数据返
本文向大家介绍浅析Android手机卫士之号码归属地查询,包括了浅析Android手机卫士之号码归属地查询的使用技巧和注意事项,需要的朋友参考一下 使用小米号码归属地数据库,有两张表data1和data2 先查询data1表,把手机号码截取前7位 再查询data2表, 可以使用子查询 创建数据库工具类 新建一个包xxx.db.dao 新建一个类NumberAddressUtils,新建一个静态方法
本文向大家介绍Python抓取手机号归属地信息示例代码,包括了Python抓取手机号归属地信息示例代码的使用技巧和注意事项,需要的朋友参考一下 前言 本文给大家介绍的是利用Python抓取手机归属地信息,文中给出了详细的示例代码,相信对大家的理解和学习很有帮助,以下为Python代码,较为简单,供参考。 示例代码 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮
本文向大家介绍android项目手机卫士来电显示号码归属地,包括了android项目手机卫士来电显示号码归属地的使用技巧和注意事项,需要的朋友参考一下 昨日实现了360手机卫士的来电显示归属地的功能,具体的功能就是当来电的时候,显示当前号码的归属地,学习之后发现操作 非常的简单,具体实现代码如下: AddressService.java 设置中心,配置是否开启来电归属地显示 直接使用我们之前定义好
问题内容: 如何将手机号码分为国家代码,区号和本地号码?例如,拆分后为+919567123456 国家区号= 91 区号= 9567 当地号码= 123456 问题答案: 用简单的算法解析电话号码是不可能的,您需要使用每个国家/地区的规则填充的数据表-因为每个国家/地区对电话号码的定界都不同。 国家/地区代码非常简单,只需使用Wikipedia中“ 国家/地区调用代码”文章中的数据,并构建一个包含
有没有办法在Java中找到电话号码的国家代码?如果我给9710334544,我将收到国家代码91(如果是印度)。 有什么建议吗。