1. 程式人生 > >Java呼叫第三方介面通過手機號碼查詢運營商和歸屬地

Java呼叫第三方介面通過手機號碼查詢運營商和歸屬地

import com.alibaba.fastjson.JSONObject;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;

/**
 * @Description:運營商和歸屬地查詢
 * @Author:ghw
 * @Date:2018/8/29
 **/
public class OperatorQuery {

    public static Map<String, String> interfaceUtil(String phone) {
        StringBuilder r = new StringBuilder();
        try {
            //淘寶URL
//            URL url = new URL("http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel="+phone);
            //360URL
            URL url = new URL("https://cx.shouji.360.cn/phonearea.php?number="+phone);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            PrintWriter out = null;
            conn.setRequestProperty("accept", "*/*");
            conn.setDoOutput(true);
            out = new PrintWriter(conn.getOutputStream());
            out.flush();
            InputStream is = conn.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(is,"gb2312"));
            String result = "";
            while ((result = br.readLine()) != null) {
                r.append(result);
            }
            is.close();
            conn.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }


        //淘寶返回結果處理
//        r = r.replaceAll("__GetZoneResult_ = ", "");
//        JSONObject jsonObject = JSONObject.parseObject(r);
//        String catName = jsonObject.get("catName").toString();
//        String carrier = jsonObject.get("carrier").toString();
//        Map<String,String> map = new HashMap<>();
//        map.put("location",catName);
//        map.put("operator",carrier);
//        return map;



        //360返回結果處理
        JSONObject resultObj = JSONObject.parseObject(r.toString());
        JSONObject data = (JSONObject) resultObj.get("data");
        Map<String,String> map = new HashMap<>();
        String province;
        String city;
        String sp;
        try {
            province = data.get("province").toString();
            city = data.get("city").toString();
            sp = data.get("sp").toString();
        }catch (NullPointerException e){
            province = "";
            city = "";
            sp = "";
        }
        map.put("location",province+city);
        map.put("operator",sp);

        return map;
    }


    public static void main(String[] args) throws Exception{
        Map<String, String> map = interfaceUtil("18888888888");
        String location = map.get("location");
        String operator = map.get("operator");
        System.out.println("location:"+location+"\noperator:"+operator);
    }


    /**
     * 360返回來的中文為unicode,需要轉換
     */
    private static String ascii2native ( String asciicode )
    {
        String[] asciis = asciicode.split ("\\\\u");
        String nativeValue = asciis[0];
        try
        {
            for ( int i = 1; i < asciis.length; i++ )
            {
                String code = asciis[i];
                nativeValue += (char) Integer.parseInt (code.substring (0, 4), 16);
                if (code.length () > 4)
                {
                    nativeValue += code.substring (4, code.length ());
                }
            }
        }
        catch (NumberFormatException e)
        {
            return asciicode;
        }
        return nativeValue;
    }
}

淘寶和360介面返回來的資料大同小異,淘寶返回來的資料如果需要轉成Json格式需要先進行處理,360返回來的資料中的中文則會顯示為對應的Unicode值,需要呼叫方法將其轉換為中文,ascii2native 這個方法不用做任何修改。兩種介面根據自身情況自行處理。

相關推薦

Java呼叫第三方介面通過手機號碼查詢運營屬地

import com.alibaba.fastjson.JSONObject; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; impo

java使用httpclient呼叫第三方介面

java使用httpclient呼叫第三方介面 HttpClientUtil工具類 package com.fz.util; import java.io.File; import java.net.URL; import java.util.ArrayList; im

(二)通過JAVA呼叫SAP介面 (增加一二級引數)

(二)通過JAVA呼叫SAP介面 (增加一二級引數) 一、建立sap連線 請參考我的上一篇部落格 JAVA連線SAP 二、測試專案環境準備 在上一篇操作下已經建好的環境後,在上面的基礎上新增類即可 三、原始碼編寫及測試 首先建立用來傳遞資料的實體類SapData,方便直接取出資料進行下

通過java呼叫Http介面上傳圖片到伺服器

/** * 測試上傳png圖片 * */ public static void testUploadImage(){ String url = "http://localhost:8080/app/remindDetails/doRepair.xht

通過淘寶介面獲取手機號碼屬地

介面地址:https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel= 請求方式:get 示例程式碼:/// <summary>

java呼叫第三方webservice介面

對方提供的webservice是用c#寫的,而我這個方案對於java或c#(親測過)提供的webservice都可以使用。具體步驟如下: 1、新建一個普通的java專案,在專案上右鍵new–other–web service client –next如圖,在框內輸入webservice地址,例如:http:/

呼叫第三方介面獲取資料寫入資料庫

系統框架:springboot(和框架沒有什麼太大關係,僅記錄一下) 呼叫路徑:controller→service 第三方介面:http://xx.xxx.com:9905/api/list?transtime=20181017105600&token=abcdefghijklmn

原生feign呼叫第三方介面

最近做一個小專案,小到只有一個頁面,和幾個介面而已。 因為專案是自己一個人在做,所以所有的定義都可以自己做主。 專案的目的是為了推送給第三方頁面收集到的資料,所以對接是重頭戲。 之前對接過各種第三方簡訊介面,用的無非是httpClient的get/post,用多了就想換一個技術熟悉一下。

通過手機號碼編碼傳送資訊的想法

通過手機號碼編碼傳送資訊的想法     紅朝儒生 2014-5-15   關鍵字:手機 號碼 資訊 簡介:在一個介面內可以同時發簡訊和撥號。進一步的,利用手機號碼的多餘部分來編碼資訊,撥號時同時傳遞過去。       在當前來說,訊息跟撥號介面,是分開的。比如

PHP -- 根據手機號碼查詢手機歸屬地手機運營等資訊

通過呼叫淘寶,百度等提供的介面可以查詢到手機歸屬地的資訊,就拿淘寶和百度來說。 淘寶介面: https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=18999999999 可以複製以上程式碼貼上到瀏覽器中,可以

Java呼叫https介面get方法,無證書

1.工具類 package springmvc.wx.controller.train; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException;

java呼叫http介面並解析返回的json物件

import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import jav

Java 呼叫webservice介面

方法一: //url為wsdl路徑 public static synchronized boolean sendMsgWebservice(String url,String content,String addresseeTel,String userAccount,String passw

java呼叫WebService介面的一種方法,引數為XML的字串

String xmlinfo = "<data>.......</data>";//xml引數 try { String url = "http://******/Server

java 通過手機號查詢歸屬地運營

package com.br.dac.app; import com.alibaba.fastjson.JSONObject; import com.br.dac.util.FileWriter; import com.br.dac.util.GetDate; import java.io.

http協議呼叫第三方介面(post get方法)

public class PostUtil {     private static CloseableHttpClient httpClient;     static {         PoolingHttpClientConnectionManager cm = n

MySql 根據手機號碼前三位後四位查詢

MySql ------------------------------------------------------------- select iphone from likeiphone where iphone LIKE '150%%38395' ---------

Java呼叫第三方微博登入例項

Java呼叫第三方微博登入例項 最近在維護一個類似訊息推送矩陣的專案,裡面用到了微博第三方登入介面的呼叫,在除錯的過程中遇到不少障礙,順手把這些坑記錄下來,作為大家的前車之鑑。 呼叫新浪微博登入 1.建立應用 開啟微博開放平臺 http://open.weibo.com 登

如何呼叫http介面通過get()/post()方法傳參

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.

android通訊錄根據手機號碼查詢姓名

最近有個關於通訊錄開發的需求,需求很簡單:根據手機號碼查詢姓名。之前有獲取通訊錄列表的程式碼如下: /** * 獲取本機手機聯絡人列表 * * @author yinbiao * @date 2016-4-5 上午11:03:48 * @param context *