`
nbtlxx
  • 浏览: 253191 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

使用HttpClient组件查询手机号码归属地

阅读更多
这个类的功能:
1. 利用httpClient开源组件,简化访问web
2. 利用sogou的开放查询接口,进行手机号码归谁查询

注意此处用的HttpClient的版本号为3.1
目前新版本有些api接口做了调整,暂时没有时间测试

/**
 * 
 */
package demo;


import java.io.IOException;
import java.util.Scanner;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;

/**
 * @author sean
 * 
 * @since 2009/05/09
 * 
 * 使用HttpClient组件,连接web
 * 查询手机号码归属地
 * 服务器端是由sogou开发的查询模块
 * 
 */
public class SimpleHttpClient {

	static HttpMethod method = null;			
	static String reponse = null;
	static String phone;						//需要查询的手机号码
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
		
		//此处简单处理,循环获得用户的电话号码输入
		do {
			System.out.println("输入您的电话号码");
			phone = scanner.next();
			query();
			System.out.println("******************************");
		} while (true);
	}

	/**
	 * 进行查询
	 * 1. 初始化httpclient对象
	 * 2. 设置host, port, protocol
	 * 3. 获得postMethod
	 * 4. client.executeMethod(),执行查询工作
	 */
	private static void query() {
		// TODO Auto-generated method stub
		String host = "www.sogou.com";
		//实例化一个httpClient对象
		HttpClient client = new HttpClient();
		
		//设置host, port, protocol
		client.getHostConfiguration().setHost(host, 80, "http");

		method = getPostMethod(phone);
		
		try {
			client.executeMethod(method);
			System.out.println(method.getStatusLine());

			reponse = method.getResponseBodyAsString();
		} catch (HttpException e) {
			System.out.println("httpexception");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		// 释放当前连接
		method.releaseConnection();

		// 根据html源码提取需要的手机号码归谁地信息
		if (reponse.contains("手机号")) {
			int beginIndex = reponse.indexOf("手机号:");
			int endIndex = reponse.indexOf("用户");

			reponse = reponse.substring(beginIndex, endIndex);
			reponse = reponse.replace("<p>", "");
			reponse = reponse.replace("</p>", "");
			System.out.println(reponse);
		} else {
			System.out.println("error");
		}

	}

	/**
	 * 使用 POST 方式提交数据
	 * 1. 获得post对象,需要设置相对路径作为
	 * 
	 * @return
	 */
	private static HttpMethod getPostMethod(String phone) {
		PostMethod post = new PostMethod("/features/mobile.jsp");
		
		//类似hashmap的key, value, 成对保存在simcard中
		NameValuePair simcard = new NameValuePair("query", phone);
		post.setRequestBody(new NameValuePair[] { simcard });
		return post;
	}
}

分享到:
评论

相关推荐

    java 调用 360 api 接口实现批量查询手机号码归属地

    在本场景中,我们将讨论如何使用Java语言调用360提供的API接口来实现批量查询手机号码的归属地。360作为知名的互联网安全公司,提供了一系列的API服务,其中包括查询电话号码信息的功能。 首先,我们需要了解Java中...

    C# 查询手机号码归属地

    在C#编程中,查询手机号码归属地是一项常见的任务,特别是在开发电话簿应用、营销系统或者数据分析项目时。本文将详细介绍如何使用C#实现这一功能,适合初学者学习。 首先,理解手机号码归属地的概念。手机号码归属...

    C#实现IP地址查询和手机号码归属地查询

    此外,如果项目中包含了本地数据库,可以使用ADO.NET或Entity Framework等ORM工具与数据库进行交互,存储和查询手机号码的归属地信息。 在项目中,"Locator.ncb"和".sln"文件是Visual Studio解决方案的一部分,"....

    C# winform 手机号码归属地查询

    在本文中,我们将深入探讨如何使用C#编程语言开发一个WinForms应用程序,实现手机号码归属地查询的功能。这个工具能够帮助用户快速获取任何手机号码的运营商信息和归属地,为日常生活和工作提供便利。 首先,我们...

    httpClient组件使用说明

    本篇文章将详细讲解HttpClient的使用方法,包括如何搭建环境、所需的jar包、基本应用以及实例演示,旨在帮助初级学员快速掌握HttpClient的基础操作。 一、环境搭建 在使用HttpClient之前,首先需要在项目中引入...

    c#手机号码归属地查询

    - 如果是开发一个桌面应用,可能会使用Windows Forms或WPF,其中包含输入框让用户输入手机号码,按钮触发查询,以及结果显示区域显示归属地信息。需要了解控件交互、事件处理等知识。 7. **异常处理**: - 编程中...

    手机号码归属地查询代码示例

    在IT行业中,手机号码归属地查询是一项常见的需求,特别是在移动应用开发中,如垃圾短信过滤、电话拦截等场景。本示例将详细介绍如何利用XML Web Service来实现这一功能,主要针对Android平台。首先,我们需要理解...

    C# Winform实现手机号码归属地查询工具

    在本文中,我们将深入探讨如何使用C# Winform来实现一个手机号码归属地查询工具。首先,我们需要理解C# Winform的基本概念,它是.NET Framework的一部分,用于构建具有图形用户界面的桌面应用程序。Winform提供了...

    C#手机号码归属地查询(改编后更经典)

    在本文中,我们将深入探讨如何使用C#编程语言来实现一个手机号码归属地查询系统,这个系统基于描述中的"经典改编",集成了多种网络上的优秀代码,可以在WinForm界面中提供本地和在线两种查询方式。我们将分析这个...

    Commons-HTTPClient组件介绍与使用

    1. Commons-HTTPClient组件的主库文件:commons-httpclient-3.1.jar 2. 编码解码支持库:commons-codec-1.3.jar,用于处理编码相关的问题。 3. 日志功能组件:可能需要Commons-Logging,以便记录和调试网络通信的...

    C# 调用WebService查询手机号码归属地

    本主题聚焦于如何利用C#调用WebService来查询手机号码的归属地。WebService是一种基于HTTP协议的网络服务,允许不同系统之间进行数据交换。在本案例中,我们将讨论如何构建或使用一个WebService接口来获取手机号码的...

    使用httpClient组件解析html并解决字符编码

    使用HttpClient组件可以轻松地实现这一任务。但是,在实际使用中,经常会遇到字符集编码乱码问题。本文将讨论如何使用HttpClient 3.0解析HTML,并解决字符编码问题。 HttpClient组件简介 Apache HttpClient是一个...

    c#手机号码归属地单个和批量查询例子

    本文将深入探讨如何使用C#进行手机号码归属地的单个和批量查询,这对于移动通信相关的应用或者数据分析项目至关重要。 首先,我们要理解手机号码归属地查询的基本原理。通常,手机运营商会为每个手机号码分配一个...

    HTTPClient组件的应用

    为了使用HttpClient,你需要下载以下组件的库文件: 1. Commons-HTTPClient的主库文件:commons-httpclient-3.1.jar,可以从Apache官方网站获取。 2. Commons-codec库文件:commons-codec-1.x.jar,因为HttpClient...

    号码归属地查询

    《手机号码归属地查询系统详解》 在信息技术日益发达的今天,手机号码归属地查询是一项常见的功能,它能够帮助我们了解电话号码的来源,对于个人安全防护和商业数据分析都有着重要作用。本文将深入探讨一个基于Java...

    ApacheCommons-HTTPClient组件的应用.doc

    为了使用 Commons-HTTPClient,开发者需要下载以下组件: 1. 主要系统库文件:commons-httpclient-3.1.jar,可以从Apache官方网站获取。 2. 其他依赖库文件:commons-codec-1.3.jar,因为HttpClient依赖Apache ...

    C# 手机归属地查询

    本项目"手机归属地查询"是基于C# WinForm平台实现的一个实用工具,旨在帮助用户快速查询手机号码的归属地信息。WinForm是.NET Framework提供的一种用于构建桌面应用程序的图形用户界面(GUI)框架。 在C# WinForm...

Global site tag (gtag.js) - Google Analytics