首页 > 编程语言 >如何免费用java c#实现手机在网状态查询

如何免费用java c#实现手机在网状态查询

时间:2024-07-15 14:26:51浏览次数:17  
标签:httpRequest java String c# System 查询 mobile api bodys

       今天分享手机在网状态查询接口,该接口适用的场景非常广泛!首先我们先讲下什么是手机在网状态?简单来说,就是你得手机号是否还在正常使用中,是否能够及时接收和回复信息,是否能够随时接听和拨打电话。如果你得手机号处于停机、欠费或者注销的状态,那么你的手机号就处于非在网状态。

1.接口名称:手机在网状态查询

2.接口用途:输入手机号码查询手机号在网状态,返回有正常使用、停机、在网但不可用、不在网(销号/未启用/异常)、预销户等十几种状态,可查询实时状态,准确率99.99%

3.免费试用:手机运营商在网状态查询-API专区-云市场

以下为具体的Java实现代码过程:

	public static void main(String[] args) {
	    String host = "https://kzmstatev1.market.alicloudapi.com";
	    String path = "/api-mall/api/mobile_status/check";
	    String method = "POST";
	    String appcode = "你自己的AppCode";
	    Map<String, String> headers = new HashMap<String, String>();
	    //最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
	    headers.put("Authorization", "APPCODE " + appcode);
	    //根据API的要求,定义相对应的Content-Type
	    headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	    Map<String, String> querys = new HashMap<String, String>();
	    Map<String, String> bodys = new HashMap<String, String>();
	    bodys.put("mobile", "mobile");


	    try {
	    	/**
	    	* 重要提示如下:
	    	* HttpUtils请从
	    	* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java
	    	* 下载
	    	*
	    	* 相应的依赖请参照
	    	* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml
	    	*/
	    	HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys);
	    	System.out.println(response.toString());
	    	//获取response的body
	    	//System.out.println(EntityUtils.toString(response.getEntity()));
	    } catch (Exception e) {
	    	e.printStackTrace();
	    }
	}

以下为具体的C#实现代码过程:

//using System.IO;
//using System.Text;
//using System.Net;
//using System.Net.Security;
//using System.Security.Cryptography.X509Certificates;

        private const String host = "https://kzmstatev1.market.alicloudapi.com";
        private const String path = "/api-mall/api/mobile_status/check";
        private const String method = "POST";
        private const String appcode = "你自己的AppCode";

        static void Main(string[] args)
        {
            String querys = "";
            String bodys = "mobile=mobile";
            String url = host + path;
            HttpWebRequest httpRequest = null;
            HttpWebResponse httpResponse = null;

            if (0 < querys.Length)
            {
                url = url + "?" + querys;
            }

            if (host.Contains("https://"))
            {
                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
                httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
            }
            else
            {
                httpRequest = (HttpWebRequest)WebRequest.Create(url);
            }
            httpRequest.Method = method;
            httpRequest.Headers.Add("Authorization", "APPCODE " + appcode);
            //根据API的要求,定义相对应的Content-Type
            httpRequest.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
            if (0 < bodys.Length)
            {
                byte[] data = Encoding.UTF8.GetBytes(bodys);
                using (Stream stream = httpRequest.GetRequestStream())
                {
                    stream.Write(data, 0, data.Length);
                }
            }
            try
            {
                httpResponse = (HttpWebResponse)httpRequest.GetResponse();
            }
            catch (WebException ex)
            {
                httpResponse = (HttpWebResponse)ex.Response;
            }

            Console.WriteLine(httpResponse.StatusCode);
            Console.WriteLine(httpResponse.Method);
            Console.WriteLine(httpResponse.Headers);
            Stream st = httpResponse.GetResponseStream();
            StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
            Console.WriteLine(reader.ReadToEnd());
            Console.WriteLine("\n");

        }

        public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
        {
            return true;
        }

以下为具体的python实现代码过程:

import urllib, urllib2, sys
import ssl


host = 'https://kzmstatev1.market.alicloudapi.com'
path = '/api-mall/api/mobile_status/check'
method = 'POST'
appcode = '你自己的AppCode'
querys = ''
bodys = {}
url = host + path

bodys['mobile'] = '''mobile'''
post_data = urllib.urlencode(bodys)
request = urllib2.Request(url, post_data)
request.add_header('Authorization', 'APPCODE ' + appcode)
//根据API的要求,定义相对应的Content-Type
request.add_header('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
response = urllib2.urlopen(request, context=ctx)
content = response.read()
if (content):
    print(content)

返回的数据结构如下:

 "msg": "成功",
    "success": true,
    "code": 200,
    "data": {
        "orderNo": "202406282055560705659",
        "result": "1",
        "province": "北京",
        "city": "北京",
        "channel": "移动",
        "resultMsg": "正常"

标签:httpRequest,java,String,c#,System,查询,mobile,api,bodys
From: https://blog.csdn.net/loosenivy/article/details/140437094

相关文章

  • Java中的泛型是什么?有什么好处?
    在Java中,泛型(Generics)是Java5引入的一项语言特性,允许在定义类、接口和方法时使用类型参数。这些类型参数在实际使用时可以被具体的类型替换,从而提高代码的可重用性和类型安全性。泛型的定义泛型通过类型参数实现,这些类型参数通常用尖括号包围,例如<T>。以下是泛型在类、......
  • C#、PLC中数据类型学习及汇总
    前言 注:不同语言部分类型定义和取值范围有所不同。编程语言如C#、C++等数据类型丰富多样,而PLC中的数据类型一般比较简单,这里汇总一下常用的数据类型,以便以后查阅。自己一个个手敲学习总结,如果有错望留言指正,如觉得还有用,请点赞收藏。目录前言1、C#中常用的值类型:可以直接......
  • webrtc-streamer实时播放监控
    公司要做web端监控实时播放,经过调研,webrtc-streamer的方式对前后端项目侵入最少,且没有延迟卡钝的现象。一、准备工作一个摄像头,摄像头对应的rtsp流链接,一台电脑,一个vue项目。二、Webrtc-streamer安装及启动教程 1、下载安装包下载地址:https://github.com/m......
  • static块执行时机
    不是类被加载的时候就执行,而是类初始化的时候才被执行。类初始化有以下几种情况:当一个类被主动使用时,Java虚拟就会对其初始化,如下六种情况为主动使用:当创建某个类的新实例时(如通过new或者反射,克隆,反序列化等)当调用某个类的静态方法时当使用某个类或接口的静态字段时当调用Java......
  • Java:什么是异常?一篇让你明白异常
    目录1.什么是异常?2.为什么需要异常处理3.异常处理的类型  3.1try-catch方式  3.2处理多种异常  3.3异常捕获的原理 3.4 异常处理的方式throws4.Exception下常用的api方法5.finally关键字6.throw关键字7.自定义异常1.什么是异常?异常就是程序在运行......
  • JavaSE项目--图书管理系统代码
    结构代码展示Book类代码packagecom.xszx.beans;//实体类publicclassBook{privateintid;privateStringname;privateintbsum;publicBook(){}publicBook(intid,Stringname,intbsum){this.id=id;......
  • ATTACKS ON THIRD-PARTY APIS OF LARGE LANGUAGE MODELS
    本文是LLM系列文章,针对《ATTACKSONTHIRD-PARTYAPISOFLARGELANGUAGEMODELS》的翻译。对大型语言模型第三方api的攻击摘要1引言2提出的流水线3实验4结论摘要大型语言模型(LLM)服务最近开始提供一个插件生态系统来与第三方API服务交互。这项创新增强了LLM的能......
  • sysbench压测数据库
    版本号:sysbench1.1        简介  sysbench是一个基于LuaJIT的可脚本多线程基准测试工具,最常用于数据库基准测试,支持单点读写、随机读写、混合读写等各种测试类型。  sysbench并非通过JDBC的方式连接数据库,而是通过专门的客户端依赖进行。比如MySQL通......
  • 用css样式修改svg图标颜色
    主要是利用css滤镜的投影drop-shadow来实现,方法是将原svg移动到网页看不见的地方,然后对原svg投影到原位置,影子实心不虚散,对影子进行颜色控制。 css::root{--color:#7a65ee;/*站点主题颜色*/--svg-offset:20000px;/*将原svg移出窗......
  • AI绘画 IC-Light:图像打光控制和背景融合生产力工具,最全ComfyUI操作指南
    大家好,我是设计师阿威今天给大家分享一下AI绘画StableDiffusion当中的IC-Light,这是一款图像打光控制和背景融合的光影模型。IC-Ligh简介IC-Light是一款由Controlnet作者lllyasviel创作的最新作品,用于实现操控图像光照效果的项目。当前该项目已经发布了两种类型的模型:文......