调用接口的正确方式

京东万象API为例,调用手机好归属地。

进入到,手机号归属地的api接口测试页面,先在该页面测试,成功后,到java中手撸。

上图看到,已经是可以用的了。

然后创建一个maven项目,需要用到Spring的StreamUtrls工具类,所以导入一下下面这个依赖,其它什么都不用,直接开干。

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.1</version>
        </dependency>
</dependencies>

代码:

import org.springframework.util.StreamUtils;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.Charset;

/**
 * @author langkye
 */
public class MyHttp {
    public static void main(String[] args) throws Exception {
        //1.定义URL
        URL url = new URL("https://way.jd.com/jisuapi/query4");
        //2.打开链接
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        //3.设置请求类型
        connection.setRequestMethod("POST");
        //4.设置请求参数 | phone=13800138000&appkey=dc2844cb3cd5ff4bf232c037eb23766b
        connection.setDoOutput(true);
        //声明参数
        StringBuilder params = new StringBuilder();
        //查询的手机号
        long phone = 13456755448L;
        //appkey是自己的万象帐号的appkey,测试时,页面会生成,下面是做示例,非真实,不能用
        String appkey = "dc2844c*****";
        //添加参数
        params.append("shouji=")
                .append(phone)
                .append("&appkey=")
                .append(appkey);
        //设置输出流编码格式
        connection.getOutputStream().write(params.toString().getBytes("UTF-8"));
        //5.发起请求
        connection.connect();
        //6.接受数据,使用Spring的工具类将输入流转为字符串,设置编码为UTF-8
        String response = StreamUtils.copyToString(connection.getInputStream(), Charset.forName("UTF-8"));

        System.out.println("response = " + response);

    }
}

输出:

response = {"code":"10000","charge":false,"msg":"查询成功","result":{"status":0,"msg":"ok","result":{"shouji":"13456755448","province":"浙江","city":"杭州","company":"中国移动","areacode":"0571"}}
posted @ 2020-11-27 17:30  LANGKYE#  阅读(1175)  评论(0编辑  收藏  举报