android实现号码归属地查询
2018-02-27 17:11
169 查看
需要查询手机号的API:https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=18888888888
导入okhttp.jar和okio.jar用于网络查询。
新建一个电话的model: package zhku.edu.searchphone.model;
/**
* Created by manRED on 2018/2/21.
*/
public class Phone {
private String telString;
private String province;
private String catName;
private String carrier;
public String getTelString() {
return telString;
}
public void setTelString(String telString) {
this.telString = telString;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getCatName() {
return catName;
}
public void setCatName(String catName) {
this.catName = catName;
}
public String getCarrier() {
return carrier;
}
public void setCarrier(String carrier) {
this.carrier = carrier;
}
}
创建一个查询号码的类:package zhku.edu.searchphone;
import org.json.JSONException;
import java.util.concurrent.Callable;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import zhku.edu.searchphone.model.Phone;
/**
* Created by manRED on 2018/2/27.
*/
public class HandePhone implements Callable<Phone> {
private Phone phone;
private String url;
public HandePhone(String url){
this.url=url;
}
@Override
public Phone call() throws Exception {
System.out.println(url);
OkHttpClient client = new OkHttpClient();//创建OkHttpClient对象
Request request = new Request.Builder()
.url(url)//请求接口。如果需要传参拼接到接口后面。
.build();//创建Request 对象
Response response = null;
response = client.newCall(request).execute();//得到Response 对象
if (response.isSuccessful()) {
String json=response.body().string();
System.out.println(json);
phone=parseModelWithOrgJson(json);
}
return phone;
}
private Phone parseModelWithOrgJson(String json){
int index=json.indexOf("{");
json=json.substring(index,json.length());
Phone phone=new Phone();
try {
org.json.JSONObject jsonObject=new org.json.JSONObject(json);
String value=jsonObject.getString("telString");
phone.setTelString(value);
value=jsonObject.getString("province");
phone.setProvince(value);
value=jsonObject.getString("catName");
phone.setCatName(value);
value=jsonObject.getString("carrier");
phone.setCarrier(value);
} catch (JSONException e) {
e.printStackTrace();
}
return phone;
}
}
主程序中调用:使用java的线程池获取返回的数据。 HandePhone handePhone=new HandePhone(url);
ExecutorService service= Executors.newFixedThreadPool(1);
Future<Phone> future=service.submit(handePhone);
Phone phone= null;
try {
phone = future.get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
导入okhttp.jar和okio.jar用于网络查询。
新建一个电话的model: package zhku.edu.searchphone.model;
/**
* Created by manRED on 2018/2/21.
*/
public class Phone {
private String telString;
private String province;
private String catName;
private String carrier;
public String getTelString() {
return telString;
}
public void setTelString(String telString) {
this.telString = telString;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getCatName() {
return catName;
}
public void setCatName(String catName) {
this.catName = catName;
}
public String getCarrier() {
return carrier;
}
public void setCarrier(String carrier) {
this.carrier = carrier;
}
}
创建一个查询号码的类:package zhku.edu.searchphone;
import org.json.JSONException;
import java.util.concurrent.Callable;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import zhku.edu.searchphone.model.Phone;
/**
* Created by manRED on 2018/2/27.
*/
public class HandePhone implements Callable<Phone> {
private Phone phone;
private String url;
public HandePhone(String url){
this.url=url;
}
@Override
public Phone call() throws Exception {
System.out.println(url);
OkHttpClient client = new OkHttpClient();//创建OkHttpClient对象
Request request = new Request.Builder()
.url(url)//请求接口。如果需要传参拼接到接口后面。
.build();//创建Request 对象
Response response = null;
response = client.newCall(request).execute();//得到Response 对象
if (response.isSuccessful()) {
String json=response.body().string();
System.out.println(json);
phone=parseModelWithOrgJson(json);
}
return phone;
}
private Phone parseModelWithOrgJson(String json){
int index=json.indexOf("{");
json=json.substring(index,json.length());
Phone phone=new Phone();
try {
org.json.JSONObject jsonObject=new org.json.JSONObject(json);
String value=jsonObject.getString("telString");
phone.setTelString(value);
value=jsonObject.getString("province");
phone.setProvince(value);
value=jsonObject.getString("catName");
phone.setCatName(value);
value=jsonObject.getString("carrier");
phone.setCarrier(value);
} catch (JSONException e) {
e.printStackTrace();
}
return phone;
}
}
主程序中调用:使用java的线程池获取返回的数据。 HandePhone handePhone=new HandePhone(url);
ExecutorService service= Executors.newFixedThreadPool(1);
Future<Phone> future=service.submit(handePhone);
Phone phone= null;
try {
phone = future.get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
相关文章推荐
- Android 号码, 来电归属地 Jni 使用C++对二进制文件查询(三) APK 实现篇
- Android实现号码归属地查询
- Android编程实现号码归属地查询的方法
- Android 号码, 来电归属地 Jni 使用C++对二进制文件查询(二) C++实现篇
- Android实现号码归属地查询
- Android 简单几步实现手机号码归属地查询,可监听文本框的变化自动查询
- Android里实现号码归属地查询
- Android实现号码归属地查询
- android 使用http请求查询手机号码归属地
- Android利用WebService查询手机号码归属地
- [017] Android平台HttpClient的使用-手机号码归属地查询 .
- [Android] Android下实现电话号码归属地的查询
- android中的网络通信(五) 通过web service编程(二) 号码归属地查询
- java语言实现号码归属地查询
- Android手机号码归属地的查询
- [Android] 来电归属地查询的实现思路
- Android开发之号码归属地查询
- 在Android中调用WebService查询手机号码归属地。
- Android 号码, 来电归属地 Jni 使用C++对二进制文件查询(一) 理论篇
- Android 号码,来电归属地 Jni 使用C++对二进制文件查询(一) 理论篇