前述:

  在WebApi中,涉及到一个重要的类,HttpWebRequest。

  学习link:httpwebrequest详解

示例演示:

代码示例:

  1、前端代码:

 @{
ViewBag.Title = "Index";
Layout = null;
}
@*<script src="~/Views/js/jquery-1.7.1.js"></script>*@
@*<script src="~/Views/js/jquery.min.js"></script>*@
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<h2>Index</h2>
请输入手机号码:<input type="text" id="inputPhoneNum" value=""/><br />
<input type="button" value="获取归属地" id="getPhoneData"/>
<div id="content"></div>
<script>
$(function () {
$('#getPhoneData').click(function () {
var str = "";
var inputPhoneNum = $("#inputPhoneNum").val();
$.ajax({
url: "/APITest/GetPhoneAreaDatet",
data: { phoneNum: inputPhoneNum },
dataType: "json",
success: function (result) {
$('#content').empty(); //清空resText里面的所有内容
var json = result;
var resobj = JSON.parse(json);
//{province:'广东',cityname:'广州'}
$('#content').html("手机号码" + inputPhoneNum + "的归属地为:" + resobj.province + resobj.cityname);
}
});
});
});
</script>

  2,后台代码:

  public class APITestController : Controller
{
//
// GET: /APITest/ public ActionResult Index()
{
return View();
} public JsonResult GetPhoneAreaDatet() {
//1.0 确定url 网络爬虫(蜘蛛)
string phoneNum = Request.QueryString["phoneNum"];
string url = "http://virtual.paipai.com/extinfo/GetMobileProductInfo";
string paras = string.Format("mobile={0}&amount={1}&callname={2}"
, phoneNum
,
, "getPhoneNumInfoExtCallback");
string Result = "";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
//做请求
request.ContentType = "application/x-www-form-urlencoded; charset=gb2312";
request.MaximumAutomaticRedirections = ;
request.MaximumResponseHeadersLength = ; byte[] requestBytes = System.Text.Encoding.UTF8.GetBytes(paras);
request.ContentLength = requestBytes.Length; Stream requestStream = request.GetRequestStream();
requestStream.Write(requestBytes, , requestBytes.Length);
requestStream.Close(); //request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); //读结果
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = new StreamReader(receiveStream, Encoding.GetEncoding("gb2312"));
Result = readStream.ReadToEnd();
response.Close();
readStream.Dispose();
//{mobile:'13926231057',province:'广东',isp:'中国移动',stock:'1',amount:'10000',maxprice:'0',minprice:'0',cityname:'广州'} int indexOfProFrist = Result.IndexOf("province")+;
int indexOfProEnd = Result.IndexOf("isp")-;
int indexOfCityFrist = Result.LastIndexOf("cityname")+;
int indexOfCityEnd = Result.IndexOf('}')-;
string strPro = Result.Substring(indexOfProFrist,indexOfProEnd-indexOfProFrist);
string strCity = Result.Substring(indexOfCityFrist, indexOfCityEnd - indexOfCityFrist);
string strJsObj = "{\"province\":\"" + strPro + "\",\"cityname\":\"" + strCity + "\"}";
//int indexOfName
return Json(strJsObj, JsonRequestBehavior.AllowGet);
}
}

利用WebApi获取手机号码归属地的更多相关文章

  1. PHP 免费获取手机号码归属地

    一.淘宝网API API地址: http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=15850781443 参数: tel:手机号码 返回 ...

  2. Android 开发工具类 31_WebService 获取手机号码归属地

    AndroidInteractWithWebService.xml <?xml version="1.0" encoding="utf-8"?> & ...

  3. 调用phone库,查询手机号码归属地(4)

    需要安装pymysql,phone库 #!/usr/bin/python # -*- coding: utf-8 -*- import sys, pymysql, logging, phone fro ...

  4. 调用API接口,查询手机号码归属地(3)

    从mysql数据库获取电话号码,查询归属地并插入到数据库 #!/usr/bin/python # -*- coding: utf-8 -*- import json, urllib, sys, pym ...

  5. 调用API接口,查询手机号码归属地(2)

    使用pymysql pip install pymysql 创建mysql测试表 CREATE TABLE `userinfo` ( `id` int(20) NOT NULL AUTO_INCREM ...

  6. 调用API接口,查询手机号码归属地(1)

    使用https://www.juhe.cn/提供的接口,查询归属地 在官网注册key即可使用. 代码如下 #!/usr/bin/python # -*- coding: utf-8 -*- impor ...

  7. (转)利用libcurl获取新浪股票接口, ubuntu和openwrt实验成功(三)

    1.  利用 CURLOPT_WRITEFUNCTION 设置回调函数, 利用 CURLOPT_WRITEDATA 获取数据指针 官网文档如下 CALLBACK OPTIONS CURLOPT_WRI ...

  8. Atitit利用反射获取子类 集合 以及继承树

    Atitit利用反射获取子类 集合 以及继承树 想从父类往下找子类的确是不可能的,要知道只要类不是final的话谁都有继承它的自由不需要事前通知父类. Eclipse实现不是重父类开始找而是重子类往回 ...

  9. 免费手机号码归属地API查询接口和PHP使用实例分享

    免费手机号码归属地API查询接口和PHP使用实例分享 最近在做全国性的行业分类信息网站,需要用到手机号归属地显示功能,于是就穿梭于各大权威站点之间偷来了API的接口地址. 分享出来,大家可以用到就拿去 ...

随机推荐

  1. 手机app

    手机app是什么? 由于iPhone.三星等智能手机的逐步流行和广泛普及,手机app这个词语开始频繁的出现在广大手机网民的视线中.也许你们还不知道什么是手机app,但你一定下载过手机app,你的手机里 ...

  2. 什么是method swizzling

    其实跟字面的意思很相近.方法的调和.可以去修改oc中两个方法的调用. 这张图看起来会比较形象 20130718230430859.png 就是把两个实现调换具体的做法,首先,用Categroy建立自己 ...

  3. 英蓓特Mars board的android4.0.3源码编译过程

    英蓓特Mars board的android4.0.3源码编译过程 作者:StephenZhu(大桥++) 2013年8月22日 若要转载,请注明出处 一.编译环境搭建及要点: 1. 虚拟机软件virt ...

  4. Swift_UILabel

    一.初始化 // 初始化UIlabel,并设置frame //let labelOne = UILabel.init(frame: CGRect.init(x: 10, y: 20, width: 3 ...

  5. bzoj2243 sdoi2011 染色 paint

    明明是裸树剖 竟然调了这么久好蛋疼 大概是自己比较水的原因吧 顺便+fastio来gangbang #include<iostream> #include<cstring> # ...

  6. [置顶] android 自定义ListView实现动画特效

    通过自定义ListView实现动画特效,被点击元素A向前移,A之前元素往后移动. 重点在于动画的实现: 具体代码如下: package com.open.widget; import java.uti ...

  7. [Ruby] LEVEL 2 Methods and Classes

    Optional Arguments Set default arguments, when we don't need to call it, we can simply skip it. def ...

  8. Android的Touch系统简介(一

    一.Android touch事件的相关概念 用户的Touch事件被包装成MotionEvent 用户当前的touch事件主要类型有: ACTION_DOWN: 表示用户开始触摸. ACTION_MO ...

  9. win32 api 文件操作!

    CreateFile打开文件要对文件进行读写等操作,首先必须获得文件句柄,通过该函数可以获得文件句柄,该函数是通向文件世界的大门. ReadFile从文件中读取字节信息.在打开文件获得了文件句柄之后, ...

  10. java生成Json工具之JsonSimple的使用

    json-simple是由是Google开发的Java JSON解析框架,基于Apache协议.目前版本为1.1 项目主页:https://code.google.com/p/json-simple/ ...