1.  
  2. import com.jiuqu.jollykeys.common.util.JsonUtil;
    import java.io.UnsupportedEncodingException;
    import java.net.URLEncoder;
    import org.apache.commons.lang3.StringUtils;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.config.RequestConfig;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
  3.  
  4. import java.io.IOException;
    import java.util.*;
  5.  
  6. import org.springframework.stereotype.Service;
  7.  
  8. /**
    * @author cloud
    * @description
    * @date 2017年06月15日
    */
    @Service
    public class HttpClientService {
  9.  
  10. private final Logger logger = LoggerFactory.getLogger(HttpClientService.class);
  11.  
  12. @Autowired
    private CloseableHttpClient httpClient;
    @Autowired
    private RequestConfig requestConfig;
  13.  
  14. /**
    * 处理get请求.
    *
    * @param url 请求路径
    * @return json
    */
    public String get(String url) {
    logger.info("请求地址(get):" + url);
    //请求结果
    String content = "";
    try {
    //实例化get方法
    HttpGet httpget = new HttpGet(url);
    httpget.setConfig(requestConfig);
    //执行get方法
    CloseableHttpResponse response = httpClient.execute(httpget);
    if (response.getStatusLine().getStatusCode() == 200) {
    content = EntityUtils.toString(response.getEntity(), "utf-8");
    logger.info("HTTP请求返回参数(get):" + content);
    }
    } catch (IOException e) {
    e.printStackTrace();
    }
    return content;
    }
  15.  
  16. /**
    * 处理get请求.
    *
    * @param url 请求路径
    * @param headers 请求头信息
    * @param params 请求参数
    */
    public String get(String url, Map<String, String> headers, Map<String, String> params) {
    logger.info("请求地址(get):" + url);
    logger.info("请求参数(get):" + JsonUtil.gson.toJson(params));
    String content = "";
    try {
    //实例化get方法
    HttpGet httpget = new HttpGet(buildUrl(url, params));
    httpget.setConfig(requestConfig);
    //设置请求头
    for (Map.Entry<String, String> e : headers.entrySet()) {
    httpget.addHeader(e.getKey(), e.getValue());
    }
  17.  
  18. CloseableHttpResponse response = httpClient.execute(httpget);
    if (response.getStatusLine().getStatusCode() == 200) {
    content = EntityUtils.toString(response.getEntity(), "utf-8");
    logger.info("HTTP请求返回参数(get):" + content);
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    return content;
    }
  19.  
  20. /**
    * 处理post请求.
    *
    * @param url 请求路径
    * @param params 参数
    * @return json
    */
    public String post(String url, Map<String, String> params) {
    logger.info("请求地址(post):" + url);
    logger.info("请求参数(post):" + JsonUtil.gson.toJson(params));
    //结果
    String content = "";
    try {
    //实例化post方法
    HttpPost httpPost = new HttpPost(url);
    httpPost.setConfig(requestConfig);
    //处理参数
    List<NameValuePair> nvps = new ArrayList<>();
    if (params != null) {
    Set<String> keySet = params.keySet();
    for (String key : keySet) {
    nvps.add(new BasicNameValuePair(key, params.get(key)));
    }
    }
    //提交的参数
    UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(nvps, "UTF-8");
    //将参数给post方法
    httpPost.setEntity(uefEntity);
    //执行post方法
    CloseableHttpResponse response = httpClient.execute(httpPost);
    if (response.getStatusLine().getStatusCode() == 200) {
    content = EntityUtils.toString(response.getEntity(), "utf-8");
    logger.info("HTTP请求返回参数(post):" + content);
    }
    } catch (IOException e) {
    e.printStackTrace();
    }
    return content;
    }
  21.  
  22. public String post2(String url, Map<String, Object> params) {
    logger.info("请求地址(post):" + url);
    logger.info("请求参数(post):" + JsonUtil.gson.toJson(params));
    //结果
    String content = "";
    try {
    //实例化post方法
    HttpPost httpPost = new HttpPost(url);
    httpPost.setConfig(requestConfig);
    //处理参数
    List<NameValuePair> nvps = new ArrayList<>();
    if (params != null) {
    Set<String> keySet = params.keySet();
    for (String key : keySet) {
    nvps.add(new BasicNameValuePair(key,params.get(key).toString));
    }
    }
    //提交的参数
    UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(nvps, "UTF-8");
    //将参数给post方法
    httpPost.setEntity(uefEntity);
    //执行post方法
    CloseableHttpResponse response = httpClient.execute(httpPost);
    if (response.getStatusLine().getStatusCode() == 200) {
    content = EntityUtils.toString(response.getEntity(), "utf-8");
    logger.info("HTTP请求返回参数(post):" + content);
    }
    } catch (IOException e) {
    e.printStackTrace();
    }
    return content;
    }
  23.  
  24. /**
    * 处理post请求.
    *
    * @param url 请求路径
    * @param params 参数
    * @return json
    */
    public String post(String url, Map<String, String> headers, Map<String, String> params) {
    logger.info("请求地址(post):" + url);
    logger.info("请求参数(post):" + JsonUtil.gson.toJson(params));
    //结果
    String content = "";
    try {
    //实例化post方法
    HttpPost httpPost = new HttpPost(url);
    httpPost.setConfig(requestConfig);
  25.  
  26. for (Map.Entry<String, String> e : headers.entrySet()) {
    httpPost.addHeader(e.getKey(), e.getValue());
    }
  27.  
  28. //处理参数
    List<NameValuePair> nvps = new ArrayList<>();
    if (params != null) {
    Set<String> keySet = params.keySet();
    for (String key : keySet) {
    nvps.add(new BasicNameValuePair(key, params.get(key)));
    }
    }
    //提交的参数
    UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(nvps, "UTF-8");
    //将参数给post方法
    httpPost.setEntity(uefEntity);
    //执行post方法
    CloseableHttpResponse response = httpClient.execute(httpPost);
    if (response.getStatusLine().getStatusCode() == 200) {
    content = EntityUtils.toString(response.getEntity(), "utf-8");
    logger.info("HTTP请求返回参数(post):" + content);
    }
    } catch (IOException e) {
    e.printStackTrace();
    }
    return content;
    }
  29.  
  30. private static String buildUrl(String host, Map<String, String> querys)
    throws UnsupportedEncodingException {
    StringBuilder sbUrl = new StringBuilder();
    sbUrl.append(host);
    if (null != querys) {
    StringBuilder sbQuery = new StringBuilder();
    for (Map.Entry<String, String> query : querys.entrySet()) {
    if (0 < sbQuery.length()) {
    sbQuery.append("&");
    }
    if (StringUtils.isBlank(query.getKey()) && !StringUtils.isBlank(query.getValue())) {
    sbQuery.append(query.getValue());
    }
    if (!StringUtils.isBlank(query.getKey())) {
    sbQuery.append(query.getKey());
    if (!StringUtils.isBlank(query.getValue())) {
    sbQuery.append("=");
    sbQuery.append(URLEncoder.encode(query.getValue(), "utf-8"));
    }
    }
    }
    if (0 < sbQuery.length()) {
    sbUrl.append("?").append(sbQuery);
    }
    }
  31.  
  32. return sbUrl.toString();
    }
  33.  
  34. public static String do_post(String url, List<NameValuePair> name_value_pair) throws IOException {
        String body = "{}";
        DefaultHttpClient httpclient = new DefaultHttpClient();
        try {
            HttpPost httpost = new HttpPost(url);
            httpost.setEntity(new UrlEncodedFormEntity(name_value_pair, StandardCharsets.UTF_8));
            HttpResponse response = httpclient.execute(httpost);
            HttpEntity entity = response.getEntity();
            body = EntityUtils.toString(entity);
        finally {
            httpclient.getConnectionManager().shutdown();
        }
        return body;
    }
    public static String do_get(String url) throws ClientProtocolException, IOException {
        String body = "{}";
        DefaultHttpClient httpclient = new DefaultHttpClient();
        try {
            HttpGet httpget = new HttpGet(url);
            HttpResponse response = httpclient.execute(httpget);
            HttpEntity entity = response.getEntity();
            body = EntityUtils.toString(entity);
        finally {
            httpclient.getConnectionManager().shutdown();
        }
        return body;
    }
  1. }

java 后台代码调用接口的更多相关文章

  1. Java后台代码调用Spring的@Service Bean的方式

    比如:在我的project中有一个类CompassIndexOperation,以: @Service("CompassIndexOperation") @Transactiona ...

  2. iOS 基于APNS消息推送原理与实现(包括JAVA后台代码)

    Push的原理: Push 的工作机制可以简单的概括为下图   图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider. APNS 是Apple ...

  3. pagebean pagetag java 后台代码实现分页 demo 前台标签分页 后台java分页

    java 后台代码实现分页 demo 实力 自己写的 标签分页 package com.cszoc.sockstore.util; import java.util.HashMap;import ja ...

  4. 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案

    方案特点: 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案,简化软件开发流程,减少各应用系统相同模块的重复开发工作,提高系统稳定性和可靠性. 基于HTTP协议的开发接口 使用特点在网页 ...

  5. js脚本中执行java后台代码

    使用场景:关闭页面弹窗时执行sql语句. 其实js里执行sql语句有多种方式. 方式一:直接在js代码里调用sql语句,原则上不能使用,因为这将sql直接暴露在客户端,安全性极差. 方式二:在js里运 ...

  6. java调用Linux执行Python爬虫,并将数据存储到elasticsearch中--(java后台代码)

    该篇博客主要是java代码,如需相应脚本及java连接elasticsearch工具类代码,请移步到上一篇博客(https://www.cnblogs.com/chenyuanbo/p/9973685 ...

  7. jquery.cookie.js && java后台代码 操作cookie实现记住当前用户输入信息代码

    下载jquery.cookie.js地址看这里:http://pan.baidu.com/s/1gdCPaN5 //初始化页面时验证是否记住了密码 $(document).ready(function ...

  8. java后台代码发送邮件

    1:安装  eyoumailserversetup 易邮邮件服务器 注册账号 2:安装Foxmail 登录以后会有个还原页面 3:测试 4:java 代码编写 配置文件: mail.host=http ...

  9. java通过HttpClient调用接口总结

    2.HttpClient 2.1简介: 最近看项目的代码,看到工程中有两个jar包张的很像,一个是commons.httpclient-3.1.jar,一个是httpclient4.2.1.jar,很 ...

随机推荐

  1. Java--谈一谈代理

    一.代理概念    代理在我们日常生活经常听到这个名词,比如我们想看下google我们需要找个代理服务器来帮我们一下,比如我们想买一个外国的什么东西需要在代购网站或者找朋友帮忙在外国买一下,用概念一点 ...

  2. 2017 多校训练 1002 Balala Power!

    Balala Power! Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)T ...

  3. HTTP服务简介

    第1章 HTTP服务介绍 1.1 简述用户访网站流程 a 进行域名信息的DNS解析   dig +trace 获得www.oldboyedu.com  ip地址信息 b 进行与网站服务器建立连接,tc ...

  4. IdentityServer4实现Token认证登录以及权限控制

    相关知识点 不再对IdentityServer4做相关介绍,博客园上已经有人出了相关的系列文章,不了解的可以看一下: 蟋蟀大神的:小菜学习编程-IdentityServer4 晓晨Master:Ide ...

  5. CSS fliter

    Filters主要是运用在图片上,以实现一些特效.(也能运用于video上),类似滤镜效果   img {         -webkit-filter:grayscale(1); }      gr ...

  6. Redis的使用初探

    Redis Redis将其数据库完全保存在内存中,仅使用磁盘进行持久化. 与其它键值数据存储相比,Redis有一组相对丰富的数据类型. Redis可以将数据复制到任意数量的从机中 Redis的安装 官 ...

  7. JAVA 的关键字 、

    关键字: 被JAVA语言赋予特定含义的单词, 特点: 组成关键字的单词的字母全部小写 注意: A:goto 和 const 是保留字 B: 类似于Notepad++ 这样的高级记事本,针对关键字有特殊 ...

  8. 使用c#操作txt

    如何读取文本文件内容: 在本文介绍的程序中,是把读取的文本文件,用一个richTextBox组件显示出来.要读取文本文件,必须使用到"StreamReader"类,这个类是由名字空 ...

  9. 8. 理解ZooKeeper的内部工作原理

    到目前为止,我们已经讨论了ZooKeeper服务的基础知识,并详细了解了数据模型及其属性. 我们也熟悉了ZooKeeper 监视(watch)的概念,监视就是在ZooKeeper命名空间中的znode ...

  10. Oracle单行函数基础运用

    单行函数 整个SQL的精髓:select语句+单行函数(背) 字符串函数 常用的处理字符串的函数有如下: No. 函数名 含义 1 UPPER(c1)  upper 将字符串全部转为大写 2 LOWE ...