精华内容
下载资源
问答
  • java代码调用第三方接口

    千次阅读 2018-09-10 12:42:03
    一、利用httpclient来字符串参数(url是第三方接口,不带参数,如:http://192.168.16.200:8081/faceInfo/list,param是url后面所要带的参数) public static JSONObject getHttpResponseJson(String url,Map&...

    一、利用httpclient来字符串参数(url是第三方接口,不带参数,如:http://192.168.16.200:8081/faceInfo/list,param是url后面所要带的参数)

    复制代码

    public static JSONObject getHttpResponseJson(String url,Map<String,String> param){
            CloseableHttpClient httpclient = null;
            CloseableHttpResponse response = null;
            JSONObject jsonObject = null;
            
            try {
                //请求发起客户端
                httpclient = HttpClients.createDefault();
                //参数集合
                List postParams = new ArrayList();
                //遍历参数并添加到集合
                for(Map.Entry<String, String> entry:param.entrySet()){
                    postParams.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
                }
                //通过post方式访问
                HttpPost post = new HttpPost(url);
                HttpEntity paramEntity = new Url
    展开全文
  • Java调用第三方接口获取数据方法

    千次阅读 2019-09-09 23:46:42
    java实现调用第三方接口获取数据 最近学习向第三方接口发出http请求,获取返回数据进行存储,把内容总结一下。 几种方法 查了一些资料,总共有这么几种方法发出http请求: javaJava.net.HttpURLConnection类实现 ...

    java实现调用第三方接口获取数据

    最近学习向第三方接口发出http请求,获取返回数据进行存储,把内容总结一下。

    几种方法

    查了一些资料,总共有这么几种方法发出http请求:

    1. java的Java.net.HttpURLConnection类实现
    2. commons的HttpClient
    3. Apache封装的CloseableHttpClient
    4. SpringBoot的RestTemplate

    第一个java的net提供的HttpURLConnection功能相较而言较少;HttpClient 是实现客户端与服务器通信的实现库,一般步骤是首先新建一个httpclient对象,并进行初始设置,然后设置get、post方法对象,设置请求参数,之后执行get、post方法获取response响应结果,最后处理结果释放连接;CloseableHttpClient进行了优化,能够自动关闭连接,默认会创建一个大小为5的连接池;RestTemplate功能更广泛,程序也不复杂。因为是小程序,所以选了使用CloseableHttpClient,用不着SpringBoot。

    实现

    新建maven工程,在pom.xml中导入httpclient与fastjson包,httpclient用来请求,fastjson进行参数转换与处理数据。
    get方法:利用 HttpClientBuilder创建连接对象

       public static String getMethod(String url){
        CloseableHttpClient httpClient = HttpClientBuilder.create().build();
        HttpGet get = new HttpGet(url); 
      try{  
       //这里可以设置请求参数,token等
      get.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36");
        HttpResponse response = httpClient.execute(get);//执行获取响应
                    if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){//根据状态码处理
                        //返回字符串
                        String res = EntityUtils.toString(response.getEntity());
                        return res;
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return null;
    }
    

    post方法:

    public static String postMethod(String url, JSONObject json){        
            try {
            CloseableHttpClient httpClient = HttpClientBuilder.create().build();
                HttpPost post = new HttpPost(url);
                post.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36");
                StringEntity s = new StringEntity(json.toString());
                s.setContentEncoding("UTF-8");
               //发送json数据需要设置contentType
               s.setContentType("application/x-www-form-urlencoded");
                post.setEntity(s); //设置请求参数
               HttpResponse response = httpClient.execute(post);
              if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
                        //返回String
                        String res = EntityUtils.toString(response.getEntity());
                        return res;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    

    获取token等可以根据需要编写

    参数处理与解析数据

    获得的响应参数可以使用json‘进行分析,[ ]为数组,{ }为对象,利用 JSONObject.parseObject(String text)将字符串转为json对象,调用getJSONArray(key)获取json数组JSONArray,getString(key)获取对应的值,getJSONObject()获取json对象。可以根据json结构层层解析,获取需要的数据。
    新建json对象,调用put方法可以赋值,之后作为请求参数设置。

    数字证书

    发出请求链接可能出现数字证书无效,PKIX path building failed、unable to find valid certification path to requested target
    可以在代码中创建忽略证书验证的CloseableHttpClient

    public CloseableHttpClient getIgnoeSSLClient() throws Exception {
       SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, new TrustStrategy() {
          @Override
    public boolean isTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
             return true;
          }
       }).build();
    
       //创建httpClient
    CloseableHttpClient client = HttpClients.custom().setSSLContext(sslContext).
             setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
       return client;
    }
    

    缓存

    由于http请求需要token验证,调用不同接口需要将token放入请求参数,token有一定时限,为了避免不停获取token,可以将其放入缓存中,减少交互提高效率。利用并发的ConcurrentHashMap实现。

    object对象存token,需要用token时从缓存中找,若是过期或者为null则获取token放入缓存

     //预缓存信息
        private static final Map<String, Object> CACHE_MAP = new ConcurrentHashMap<String, Object>();
    //每个缓存生效时间10小时
    public static final long CACHE_HOLD_TIME_24H = 24 * 60 * 60 * 1000L;
    /**
     * 存放一个缓存对象,默认保存时间24小时
     * @param cacheName
     * @param obj
     */
    /*public static void put(String cacheName, Object obj) {
        put(cacheName, obj, CACHE_HOLD_TIME_24H);
    }*/
    /**
     * 存放一个缓存对象,保存时间为holdTime
     * @param cacheName
     * @param obj
     * @param holdTime
     */
    public static void put(String cacheName, Object obj, long holdTime) {
        CACHE_MAP.put(cacheName, obj);
        CACHE_MAP.put(cacheName + "_HoldTime", System.currentTimeMillis() + holdTime);//缓存失效时间
    }
    /**
     * 检查缓存对象是否存在,
     * 若不存在,则返回false
     * 若存在,检查其是否已过有效期,如果已经过了则删除该缓存并返回false
     * @param cacheName
     * @return
     */
    public static boolean checkCacheName(String cacheName) {
        Long cacheHoldTime = (Long) CACHE_MAP.get(cacheName + "_HoldTime");
        if (cacheHoldTime == null || cacheHoldTime == 0L) {
            return false;
        }
        if (cacheHoldTime < System.currentTimeMillis()) {
            remove(cacheName);
            return false;
        }
        return true;
    }
    /**
     * 删除所有缓存
     */
    /*public static void removeAll() {
        CACHE_MAP.clear();
    }*/
    /**
     * 删除某个缓存
     * @param cacheName
     */
    public static void remove(String cacheName) {
        CACHE_MAP.remove(cacheName);
        CACHE_MAP.remove(cacheName + "_HoldTime");
    }
    /**
     * 取出一个缓存对象
     * @param cacheName
     * @return
     */
    public static Object get(String cacheName) {
        if (checkCacheName(cacheName)) {
            return CACHE_MAP.get(cacheName);
        }
        return null;
    }
    /**
     * 获取缓存中的token,24小时更新
     * @param loginJson
     * @return
     */
    public static String getCacheToken(JSONObject loginJson){
        if (get("token")==null || get("token").equals("")){
            put("token",getToken(loginJson),CACHE_HOLD_TIME_24H);
        }
        return String.valueOf(get("tokenString"));
    }
    

    还有个定时任务周期性执行,使用scheduleWithFixedDelay实现,这里传对象进去的话要声明为final

     ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
            Runnable runnable = new Runnable() {
                public void run() {
                    try{
                        //执行内容
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                }
            };
            service.scheduleWithFixedDelay(runnable,10,20, TimeUnit.MINUTES);
            service.execute(runnable);
    

    参考: https://www.cnblogs.com/swordfall/p/10757499.html.
    https://www.imooc.com/article/18585
    https://blog.csdn.net/qb170217/article/details/81699439
    https://blog.csdn.net/walle167/article/details/50957400
    附一个Spring-boot的学习地址 https://github.com/ityouknow/spring-boot-examples

    展开全文
  • java调用第三方接口的三种方式

    千次阅读 2020-07-22 11:41:28
    HttpClient public class HttpClientUtil { public static String get(String url){ //创建请求方式 HttpGet httpGet=new HttpGet(url); // HttpPost ; ... //创建客户端对象 HttpClient client= HttpCl

    HttpClient

    public class HttpClientUtil {
        public static String get(String url){
            //创建请求方式
            HttpGet httpGet=new HttpGet(url);
    //        HttpPost ;
    //        HttpPut;
    //        HttpDelete
            //创建客户端对象
            HttpClient client= HttpClientBuilder.create().build();
            //执行请求 获取响应对象
            try {
                HttpResponse response=client.execute(httpGet);
                if(response.getStatusLine().getStatusCode()==200){
                    //解析结果
                    return EntityUtils.toString(response.getEntity());
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
    
       
    }

    OKHttpClient

    public class OkHttpUtil {
        public static String get(String url){
            //创建客户端对象
            OkHttpClient client=new OkHttpClient();
            //创建请求对象
            Request request=new Request.Builder().url(url).get().build();
            //获取响应
            Call call=client.newCall(request);
            //同步
            try {
               Response response= call.execute();
               return response.body().string();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
        public static String getWxPay(String url,String auth){
            //创建客户端对象
            OkHttpClient client=new OkHttpClient();
            //创建请求对象
            Request request=new Request.Builder().url(url).get()
                     .addHeader("Authorization"," WECHATPAY2-SHA256-RSA2048 "+auth).build();
            //获取响应
            Call call=client.newCall(request);
            //同步
            try {
                Response response= call.execute();
                return response.body().string();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
        //post
        public static String postJson(String url,String data){
            //创建客户端对象
            OkHttpClient client=new OkHttpClient();
            //创建请求的传递参数
            RequestBody rb=RequestBody.create(data,MediaType.parse("application/json;charset=UTF-8"));
            //创建请求对象
            Request request=new Request.Builder().url(url).post(rb).addHeader("Accept","application/json").build();
            //获取响应
            Call call=client.newCall(request);
            //同步
            try {
                Response response= call.execute();
                return response.body().string();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
        public static String postJsonWxPay(String url,String data,String auth){
            //创建客户端对象
            OkHttpClient client=new OkHttpClient();
            //创建请求的传递参数
            RequestBody rb=RequestBody.create(data,MediaType.parse("application/json;charset=UTF-8"));
            //创建请求对象
            Request request=new Request.Builder().url(url).post(rb).
                    addHeader("Accept","application/json")
                    .addHeader("Authorization"," WECHATPAY2-SHA256-RSA2048 "+auth).build();
            //获取响应
            Call call=client.newCall(request);
            //同步
            try {
                Response response= call.execute();
                return response.body().string();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
        public static String postKeyVal(String url,String kv){
            //创建客户端对象
            OkHttpClient client=new OkHttpClient();
            //创建请求的传递参数
            RequestBody rb=RequestBody.create(kv,MediaType.parse("application/x-www-form-urlencoded;charset=UTF-8"));
            //创建请求对象
            Request request=new Request.Builder().url(url).post(rb).build();
            //获取响应
            Call call=client.newCall(request);
            //同步
            try {
                Response response= call.execute();
                return response.body().string();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
    }

    HttpURLConnection

    public class HttpUtil {
        public static String get(String url) {
            try {
                //实例化资源对象
                URL myurl = new URL(url);
                //打开连接 获取连接对象
                HttpURLConnection huc = (HttpURLConnection) myurl.openConnection();
                //设置连接信息
                huc.setConnectTimeout(10000);
                //验证状态响应码
                if (huc.getResponseCode() == 200) {
                    //接收相应数据
                    String str = IOUtils.toString(huc.getInputStream());
                    return str;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    }

     

    展开全文
  • java调用第三方接口http工具类

    千次阅读 2020-01-08 11:53:56
    java调用第三方接口http工具类 一、描述        调用第三方接口工具。 二、代码实现 package com.lanshen.utils.lsjavaUtils; import com.alibaba.fastjson.JSON; import ...

    java调用第三方接口http工具类

    一、描述
           调用第三方接口工具。

    二、代码实现

    package com.lanshen.utils.lsjavaUtils;
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    import org.apache.http.HttpEntity;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.message.BasicHeader;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    import org.apache.log4j.Logger;
    import javax.activation.MimetypesFileTypeMap;
    import java.io.*;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    
    /**
     * Created by Lanshen on 2019/12/2.
     * 调用第三方接口工具
     */
    public class lshttpUtils {
    
        private static final Logger LOGGER = Logger.getLogger(lshttpUtils.class);
    
        /*Java通过HTTP的短连接的方式发送JSON报文和接收JSON报文==纯参数===POST*/
        public static String JsonHttpRequestPost(String requestUrl, String requestMethod, String outputStr) throws IOException {
            StringBuffer rstsb = new StringBuffer();
            try {
                URL url = new URL(requestUrl);
                //打开和url之间的连接
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                //设置发送数据
                conn.setDoOutput(true);
                //设置接受数据
                conn.setDoInput(true);
                //设置请求的方法类型
                conn.setRequestMethod(requestMethod);
                conn.setUseCaches(false);
                conn.setInstanceFollowRedirects(true);
                //设置请求的内容类型
                conn.setRequestProperty("Content-Type", "application/json");
                conn.connect();
    
                //往服务器端写内容 也就是发起http请求需要带的参数
                if (outputStr != null) {
                    //发送数据,使用输出流
                    OutputStream os = conn.getOutputStream();
                    os.write(outputStr.getBytes("utf-8"));
                    os.close();
                }
    
                //读取服务器端返回的内容,获取URLConnection对象对应的输入流
                InputStream is = conn.getInputStream();
                InputStreamReader isr = new InputStreamReader(is, "utf-8");
                //构造一个字符流缓存
                BufferedReader br = new BufferedReader(isr);
                String line;
                while ((line = br.readLine()) != null) {
                    rstsb.append(line);
                    rstsb.append("\n");
                }
                br.close();
    
                //断开连接,最好写上,disconnect是在底层tcp socket链接空闲时才切断。如果正在被其他线程使用就不切断。
                //固定多线程的话,如果不disconnect,链接会增多,直到收发不出信息。写上disconnect后正常一些。
                conn.disconnect();
    
            } catch (Exception e) {
                e.printStackTrace();
                throw new IOException("请求服务器出现异常");
            }
    
            //把返回的值转成json
            JSONObject json = (JSONObject) JSON.parse(rstsb.toString());
            LOGGER.info("调用第三方接口后,返回的值为:" + json);
    
            return rstsb.toString();
        }
    
        /*Java通过HTTP的短连接的方式发送FORM报文和接收JSON报文==参数+图片===POST*/
        @SuppressWarnings("rawtypes")
        public static String FormHttpRequestPost(String requestUrl, String requestMethod, Map<String, Object> parmMap, Map<String, String> fileMap, String contentType) throws Exception {
            String rstsb = "";
            HttpURLConnection conn = null;
            // boundary就是request头和上传文件内容的分隔符
            String BOUNDARY = "---------------------------123821742118716";
            try {
                URL url = new URL(requestUrl);
                conn = (HttpURLConnection) url.openConnection();
                conn.setConnectTimeout(5000);
                conn.setReadTimeout(30000);
                conn.setDoOutput(true);
                conn.setDoInput(true);
                conn.setUseCaches(false);
                conn.setRequestMethod(requestMethod);
                conn.setRequestProperty("Connection", "Keep-Alive");
                conn.setRequestProperty("User-Agent",
                        "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.6)");
                conn.setRequestProperty("Content-Type",
                        "multipart/form-data; boundary=" + BOUNDARY);
                OutputStream out = new DataOutputStream(conn.getOutputStream());
    
                // paramMap
                if (parmMap != null) {
                    StringBuffer strBuf = new StringBuffer();
                    Iterator iter = parmMap.entrySet().iterator();
                    while (iter.hasNext()) {
                        Map.Entry entry = (Map.Entry) iter.next();
                        String inputName = (String) entry.getKey();
                        Object inputValue = entry.getValue();
                        if (inputValue == null) {
                            continue;
                        }
                        strBuf.append("\r\n").append("--").append(BOUNDARY)
                                .append("\r\n");
                        strBuf.append("Content-Disposition: form-data; name=\""
                                + inputName + "\"\r\n\r\n");
                        strBuf.append(inputValue);
                    }
                    out.write(strBuf.toString().getBytes());
                }
    
                // fileMap
                if (fileMap != null) {
                    Iterator iter = fileMap.entrySet().iterator();
                    while (iter.hasNext()) {
                        Map.Entry entry = (Map.Entry) iter.next();
                        String inputName = (String) entry.getKey();
                        String inputValue = (String) entry.getValue();
                        if (inputValue == null) {
                            continue;
                        }
                        File file = new File(inputValue);
                        String filename = file.getName();
    
                        //没有传入文件类型,同时根据文件获取不到类型,默认采用application/octet-stream
                        contentType = new MimetypesFileTypeMap().getContentType(file);
                        //contentType非空采用filename匹配默认的图片类型 图片文件只支持jpg/jpeg/png 格式。
                        if (!"".equals(contentType)) {
                            if (filename.endsWith(".png")) {
                                contentType = "image/png";
                            } else if (filename.endsWith(".jpg") || filename.endsWith(".jpeg") || filename.endsWith(".jpe")) {
                                contentType = "image/jpeg";
                            }
                        }
                        if (contentType == null || "".equals(contentType)) {
                            contentType = "application/octet-stream";
                        }
                        StringBuffer strBuf = new StringBuffer();
                        strBuf.append("\r\n").append("--").append(BOUNDARY)
                                .append("\r\n");
                        strBuf.append("Content-Disposition: form-data; name=\""
                                + inputName + "\"; filename=\"" + filename
                                + "\"\r\n");
                        strBuf.append("Content-Type:" + contentType + "\r\n\r\n");
                        out.write(strBuf.toString().getBytes());
                        DataInputStream in = new DataInputStream(
                                new FileInputStream(file));
                        int bytes = 0;
                        byte[] bufferOut = new byte[1024];
                        while ((bytes = in.read(bufferOut)) != -1) {
                            out.write(bufferOut, 0, bytes);
                        }
                        in.close();
                    }
                }
                byte[] endData = ("\r\n--" + BOUNDARY + "--\r\n").getBytes();
                out.write(endData);
                out.flush();
                out.close();
                // 读取返回数据
                StringBuffer strBuf = new StringBuffer();
                BufferedReader reader = new BufferedReader(new InputStreamReader(
                        conn.getInputStream()));
                String line = null;
                while ((line = reader.readLine()) != null) {
                    strBuf.append(line).append("\n");
                }
                rstsb = strBuf.toString();
                reader.close();
                reader = null;
            } catch (Exception e) {
                LOGGER.info("发送POST请求出错。" + requestUrl);
                e.printStackTrace();
            } finally {
                if (conn != null) {
                    conn.disconnect();
                    conn = null;
                }
            }
    
            //把返回的值转成json
            JSONObject json = (JSONObject) JSON.parse(rstsb.toString());
            LOGGER.info("调用第三方接口后,返回的值为:" + json);
    
            return rstsb;
        }
    
        /*Java通过HTTP方式发送JSON报文和接收JSON报文===GET*/
        public static String JsonHttpRequestGet(String requestUrl, String requestMethod) throws IOException {
            StringBuffer rstsb = new StringBuffer();
            try {
                URL url = new URL(requestUrl);
                //打开和url之间的连接
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                //设置发送数据
                conn.setDoOutput(true);
                //设置接受数据
                conn.setDoInput(true);
                //设置请求的方法类型
                conn.setRequestMethod(requestMethod);
                //设置请求参数的字节长度
                conn.setRequestProperty("Content-Length", String.valueOf(requestUrl.getBytes().length));
                conn.setUseCaches(false);
                conn.setInstanceFollowRedirects(true);
                //设置请求的内容类型
                conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                conn.setRequestProperty("user-agent",
                        "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.6)");
                conn.connect();
    
                //往服务器端写内容 也就是发起http请求需要带的参数
    
                /*if (outputStr != null) {
                    //发送数据,使用输出流
                    OutputStream os = conn.getOutputStream();
                    os.write(outputStr.getBytes("utf-8"));
                    os.close();
                }*/
    
                //读取服务器端返回的内容,获取URLConnection对象对应的输入流
                InputStream is = conn.getInputStream();
                InputStreamReader isr = new InputStreamReader(is, "utf-8");
                //构造一个字符流缓存
                BufferedReader br = new BufferedReader(isr);
                String line;
                while ((line = br.readLine()) != null) {
                    rstsb.append(line);
                    rstsb.append("\n");
                }
                br.close();
    
                //断开连接,最好写上,disconnect是在底层tcp socket链接空闲时才切断。如果正在被其他线程使用就不切断。
                //固定多线程的话,如果不disconnect,链接会增多,直到收发不出信息。写上disconnect后正常一些。
                conn.disconnect();
    
            } catch (Exception e) {
                e.printStackTrace();
                throw new IOException("请求服务器出现异常");
            }
    
            //把返回的值转成json
            JSONObject json = (JSONObject) JSON.parse(rstsb.toString());
            LOGGER.info("调用第三方接口后,返回的值为:" + json);
    
            return rstsb.toString();
        }
    
        /*Java通过HTTPClient方式发送JSON报文和接收JSON报文*/
        public static String JsonHttpRequestClient(String requestUrl,Map<String,String> map) throws Exception{
            /*获取连接客户端工具*/
            CloseableHttpClient client = HttpClients.createDefault();
            CloseableHttpResponse response = null;
            String entityStr = null;
            byte[] message = null;
    
            try {
                /*创建POST请求对象*/
                HttpPost httpPost = new HttpPost(requestUrl);
    
                /*添加请求头信息*/
                httpPost.setHeader(new BasicHeader("Content-Type","application/x-www-form-urlencoded"));
                //httpPost.setHeader(new BasicHeader("User-agent","userAgent"));
                httpPost.setHeader(new BasicHeader("user-agent","Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.6)"));
                httpPost.setHeader(new BasicHeader("Referer",""));
    
                /*添加请求参数*/
                List<NameValuePair> paramList = new ArrayList<NameValuePair>();
                Iterator iterator = map.entrySet().iterator();
                while(iterator.hasNext()){
                    Map.Entry<String,String> elem = (Map.Entry<String, String>) iterator.next();
                    paramList.add(new BasicNameValuePair(elem.getKey(),elem.getValue()));
                }
    
                /*BasicNameValuePair param1 = new BasicNameValuePair("ECARDEVID", "101004");
                BasicNameValuePair param2 = new BasicNameValuePair("SCHID", "10486");
                BasicNameValuePair param3 = new BasicNameValuePair("ccbParam", MyConstant.CCBPARAM);
                paramList.add(param1);
                paramList.add(param2);
                paramList.add(param3);*/
    
                /*使用URL实体转换工具*/
                System.out.println("请求的参数为:"+paramList);
                httpPost.setEntity(new UrlEncodedFormEntity(paramList, "UTF-8"));
    
                /*执行请求*/
                response = client.execute(httpPost);
                if(response.getStatusLine().getStatusCode() != 200){
                    System.out.println("返回失败!");
                }else{
                    /*获得响应的实体对象*/
                    HttpEntity entity = response.getEntity();
                    /*使用Apache提供的工具类进行转换成字符串*/
                    entityStr = EntityUtils.toString(entity, "UTF-8");
                }
            }catch (Exception e){
                message = "失败".getBytes();
            }
    
            return entityStr;
    
        }
    }
    
    展开全文
  • 比如java调用第三方支付宝的,我从网上看到的时候,客户端请求支付宝 然后支付宝封装参数给银行,银行付款然后通过支付宝,支付宝再通知客户。 但是我看到这个程序里面有个地方说到了异步,还有回调,对于这2个东西...
  • java调用webservice 第三方接口

    千次阅读 2018-12-29 14:39:12
    Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都...
  • WebClient调用第三方接口

    千次阅读 2019-10-15 10:37:10
    应用场景:开放平台接入A项目接口,提供给B项目调用,先在平台创建A接口接口,项目信息,应用信息,生成url(包含签名),再把URL给B平台调用。 流程:A-平台-B-平台-A 提供:A,注册到开放平台 调用方:B,发...
  • java调用第三方的webService接口

    千次阅读 2018-03-05 23:46:49
    java调用webservice有很多种方式,有axis、axis2、cxf、soap等,看你在网上找的是用什么方式了,如果你的项目是spring架构的 或wsdl的方法比较多,推荐使用CXF,可方便和spring集成,下面是CXF的调用:...
  • 使用httpclient调用公安部接口 并接受返回的字符串转换为图片
  • java 调用第三方系统时的连接代码

    千次阅读 2017-12-15 12:41:13
    java 调取第三方系统的时候出现的问题,算自己的总结。 1. 先将准备传入参数 2. 再与第三方系统建立连接 3. 再第三方系统处理后给你返回需要的信息
  • Spring中使用RestTemplate调用第三方接口API 将其json内容转换为程序中需要的对象
  • Feign调用第三方http接口

    千次阅读 2020-05-24 11:55:49
    我们平常在开发的时候,经常会碰到调用第三方接口,这个时候我们可以使用httpClient或者restTemplate,但是这两种方式相比较与Feign调用,都会麻烦一点儿。Feign是声明式服务调用客户端,既规范又简洁,帮我们屏蔽...
  • Java Web项目常用的第三方接口

    千次阅读 2017-11-09 11:36:03
    感谢作者 ...1. Web Service接口 ...1.1 接口方式说明和优点 ...在笔者的开发生涯中,当作为接口提供商给第三方提供接口时,以及作为客户端调用第三方提供的接口时,大部分时候都是使用Web Service接口,We
  • 2.这个类似于tomcat,将下载的文件解压到D:,然后将D:\apache-cxf\bin配置到环境变量(注意...3.浏览器打开wenservice接口地址并登录,右键页面另存为,将本页面保存到本地文件(默认是.xml文件),修改后缀为.wsdl,例如:Test.
  • 客户端调用 文档说明 1、《WebService 常用免费调用接口》中提供了生活中常见的一些 webService 服务,而且这些服务都是免费的,大家都可以调用,本文将选取里面的 "中国气象局" 天气查询服务作为调用...
  • 最近研究了java调用第三方webservice的几种方法,方式很多,主要卡在登录验证上。 webservice是有iis中的.net程序提供的。在iis中设置了登录验证,浏览器输入...
  • Java Web系统常用的第三方接口

    千次阅读 2017-10-11 09:58:14
    Java Web系统常用的第三方接口 2016-05-16 22:09 9288人阅读 评论(1) 收藏 举报  分类: web安全(11)  目录(?)[+] 1. Web Service 接口 1.1 接口方式说明和优点 在...
  • Java Web 常用的第三方接口

    千次阅读 2013-06-05 15:26:47
     在笔者的开发生涯中,当作为接口提供商给第三方提供接口时,以及作为客户端调用第三方提供的接口时,大部分时候都是使用Web Service接口,Web Service作为接口使用广泛的原因,与它的特点息息相关。  Web ...
  • JAVA调用第三方提供的webService服务

    千次阅读 2017-10-25 14:57:53
    互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气预报数据和查询国内手机号码归属地为例进行说明。  气象...
  • 调用微信和支付宝第三方接口方法总结

    万次阅读 多人点赞 2017-01-17 15:23:55
    最近项目上用到了调用微信和支付宝的第三方支付接口,因为以前没用过,所以这次用到了之后总结一下分享给大家,这里介绍两种支付方式,即app支付和扫码支付方式。 一、app支付(这里只介绍java调用支付,安卓或ios...
  • jersey实现web service接口+客户端调用

    千次阅读 2015-03-13 13:42:18
    jersey实现web service接口+客户端调用 jersey百度百科:  Jersey是一个RESTFUL请求服务JAVA框架,与常规的JAVA编程使用的struts框架类似,它主要用于处理业务逻辑层。与Struts类似,它同样可以和hibernate,spring...
  • 简单介绍如何调用第三方API

    千次阅读 2018-07-16 09:57:44
    今天给大家分享一下,java学习中需要使用的第三方API的调用1.背景介绍API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组...
  • java应用中,调用第三方api如何处理异常(系统异常、操作异常等等)  一个应用大多数都要调用其它服务接口获取相关资源,而第三方服务会有很多错误码,有相关系统异常,用户操作异常,授权异常等等。其实对于自己...
  • android调用第三方库——第一篇

    万次阅读 2013-07-24 13:33:38
    第二篇:主要是介绍用android程序直接调用第三方库 第三篇:主要是介绍用android程序整合第三方库到自己的库中, 第四篇:主要介绍android调用多个第三方库时Android.mk的写法和注意事项 在这四篇中,避免枯燥,作者...
  • 支付宝第三方登录接口调用

    千次阅读 2020-03-30 17:47:07
    支付宝第三方登录接口调用 这个参考的是支付宝开放平台, 跟着文档一步步做, 可以做出来, 但是有个问题, 就是对新手来说文档不太容易读懂。我是调用过一次支付宝的支付接口,所以上手比较快。这里再做个记录,也...
  • 第三方接口对接总结

    万次阅读 多人点赞 2018-09-30 16:46:46
    A公司提供接口给B公司,B公司进行一些操作时调用我们的接口进行实现。 例:A开发会员等级同步接口,供B同步会员等级到B系统。B会员等级的变动需要调用A接口主动推送给A(即更新会员卡等级)。 我们首先要做的...
  • Java实现Google第三方登录

    万次阅读 多人点赞 2017-03-28 11:15:52
    其实所有的第三方登录都是基于OAuth协议的,大多数平台都支持OAuth2.0,只有Twitter的是基于OAuth1.0来做的。所以只要弄明白一个,其他的什么qq、微信、微博的第三方登录也都一样。上一篇写的Facebook,现在再写一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 112,728
精华内容 45,091
关键字:

java客户端调用第三方接口

java 订阅