Java通过代理访问互联网平台提供的WebService接口的一种方法

来源:互联网 发布:linux监控服务器性能 编辑:程序博客网 时间:2024/05/24 06:31

背景

通常基于两点原因需要通过代理访问互联网平台的提供的WebService接口:
1. 在公司企业内网访问外部互联网公司发布的接口,公司要求通过代理访问。
2. 频繁访问接口,IP被平台封了,需要寻求一个代理访问。

以调用高德提供的坐标转换接口为例

高德提供的接口URL 是:http://restapi.amap.com/v3/assistant/coordinate
locations=116.481499,39.990475&coordsys=gps&output=xml&key=<用户的key>接口详细说明见:http://lbs.amap.com/api/webservice/guide/api/convert/#convert 。

为了方便JAVA代码调用,可以对接口PATH和参数做一些封装。

封装公共函数

package com.huawei.internetcrawler.util;import java.util.HashMap;import java.util.Map;import java.util.Map.Entry;import javax.ws.rs.core.MediaType;import org.apache.cxf.jaxrs.client.WebClient;public class WebServiceUtil{    /**     * 设置外网访问proxy     */    static    {        System.setProperty("http.proxyHost", "代理IP或者域名");        System.setProperty("http.proxyPort", "代理端口号");     }    /*******************************************************************************************************************     * Title: invokeWS     * Description: 调用WebService服务。用于调用互联网开发平台提供的查询接口。     *     * @param url webservice服务接口url。     *      * @return 返回查询结果的json串     ******************************************************************************************************************/    public static String invokeWS(String url, Map<String, String> queryParaMap)    {        WebClient client = WebClient.create(url);        for (Entry<String, String> entry : queryParaMap.entrySet())        {            client.query(entry.getKey(), entry.getValue());        }        String result =client.accept(MediaType.APPLICATION_JSON).get(String.class);        return result;    }}

客户端调用代码样例

    public static void main(String[] args)    {                   Map<String, String> queryParaMap = new HashMap<String, String>();        queryParaMap.put("key", "b21166784a64fe201084e6f057f384ab");        queryParaMap.put("locations", "113.941084,22.546002");        queryParaMap.put("coordsys", "baidu");        invokeWS("http://restapi.amap.com/v3/assistant/coordinate/convert", queryParaMap);    }
0 0
原创粉丝点击