• HttpInvokerUtils


    package com.sprucetec.tms.utils;

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;

    import java.io.BufferedOutputStream;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;

    /**
    * HttpInvoker.
    *
    * @author Yinqiang Du
    * @date 2016/8/11
    */
    public class HttpInvokerUtils {
    /**
    * 日志.
    */
    private static final Logger LOGGER = LoggerFactory.getLogger(HttpInvokerUtils.class);

    /**
    * 发起http get 请求获取返回结果.
    *
    * @param getURL 请求路径 .
    * @return
    * @throws Exception
    */
    public static String sendGetRequest(String getURL) throws IOException {
    // 拼凑get请求的URL字串,使用URLEncoder.encode对特殊和不可见字符进行编码
    URL getUrl = new URL(getURL);
    // 根据拼凑的URL,打开连接,URL.openConnection函数会根据 URL的类型,
    // 返回不同的URLConnection子类的对象,这里URL是一个http,因此实际返回的是HttpURLConnection
    HttpURLConnection connection = (HttpURLConnection) getUrl
    .openConnection();
    // 进行连接,但是实际上get request要在下一句的 connection.getInputStream()函数中才会真正发到
    // 服务器
    connection.connect();
    // 取得输入流,并使用Reader读取
    BufferedReader reader = new BufferedReader(new InputStreamReader(
    connection.getInputStream()));
    LOGGER.info(" ============================= ");
    LOGGER.info(" Contents of get request ");
    LOGGER.info(" ============================= ");
    String lines="";
    String temp="";
    while ((temp = reader.readLine()) != null) {
    lines += temp;
    }
    reader.close();
    // 断开连接
    connection.disconnect();
    LOGGER.info(" ============================= ");
    LOGGER.info(" Contents of get request ends ");
    LOGGER.info(" ============================= ");
    return lines;
    }

    /**
    * 发起http post 请求获取返回结果.
    *
    * @param urlStr 请求路径 .
    * @param requestParamsJson json字符串.
    * @return
    * @throws Exception
    */
    public static String sendPostRequest(String urlStr, String requestParamsJson) throws Exception {
    LOGGER.info(" ============================= ");
    LOGGER.info("开始发送http post请求...");
    LOGGER.info(" ============================= ");
    BufferedOutputStream bufOutPut = null;
    BufferedReader bufferedReader = null;
    HttpURLConnection httpConn = null;
    String lines = "";
    try {
    URL url = new URL(urlStr);
    httpConn = (HttpURLConnection) url.openConnection();
    httpConn.setDoInput(true); // 设置是否从httpUrlConnection读入,默认情况下是true;
    httpConn.setDoOutput(true); // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在http正文内,因此需要设为true, 默认情况下是false;
    httpConn.setRequestMethod("POST");// 设定请求的方法为"POST",默认是GET
    httpConn.setAllowUserInteraction(false); //是否允许用户交互
    httpConn.setUseCaches(false); // Post 请求不能使用缓存
    httpConn.setInstanceFollowRedirects(true);
    httpConn.setRequestProperty("Accept-Charset", "UTF-8");
    httpConn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接
    httpConn.setRequestProperty("Content-Type", "application/json"); // 设定传送的内容类型是可序列化的java对象
    // 此处getOutputStream会隐含的进行connect(即:如同调用上面的connect()方法,
    bufOutPut = new BufferedOutputStream(httpConn.getOutputStream());
    httpConn.connect();
    byte[] bdat = requestParamsJson.getBytes("UTF-8");// 解决中文乱码问题
    bufOutPut.write(bdat, 0, bdat.length);
    bufOutPut.flush();

    // 根据ResponseCode判断连接是否成功
    int responseCode = httpConn.getResponseCode();
    if (responseCode != 200) {
    LOGGER.error(" Error===" + responseCode);
    } else {
    LOGGER.info("Post Success!");
    }
    // 定义BufferedReader输入流来读取URL的ResponseData
    bufferedReader = new BufferedReader(new InputStreamReader(httpConn.getInputStream()));
    String temp = "";
    while ((temp = bufferedReader.readLine()) != null) {
    lines += temp;
    }
    } catch (Exception e) {
    LOGGER.error("send post request error!" + e);
    } finally {
    httpConn.disconnect(); // 断开连接
    try {
    if (bufOutPut != null) {
    bufOutPut.close();
    }
    if (bufferedReader != null) {
    bufferedReader.close();
    }
    } catch (IOException ex) {
    ex.printStackTrace();
    }
    }
    LOGGER.info(" ============================= ");
    LOGGER.info("发送http post请求结束...");
    LOGGER.info(" ============================= ");
    return lines;
    }
    }
  • 相关阅读:
    jQuery EasyUI API 中文文档 可调整尺寸
    jQuery EasyUI API 中文文档 链接按钮(LinkButton)
    jQuery EasyUI API 中文文档 手风琴(Accordion)
    jQuery EasyUI API 中文文档 表单(Form)
    jQuery EasyUI API 中文文档 组合(Combo)
    jQuery EasyUI API 中文文档 布局(Layout)
    jQuery EasyUI API 中文文档 拆分按钮(SplitButton)
    jQuery EasyUI API 中文文档 菜单按钮(MenuButton)
    jQuery EasyUI API 中文文档 搜索框
    jQuery EasyUI API 中文文档 验证框(ValidateBox)
  • 原文地址:https://www.cnblogs.com/duyinqiang/p/6909832.html
Copyright © 2020-2023  润新知