zoukankan      html  css  js  c++  java
  • 通过java.net.URLConnection发送HTTP请求的方法

    最近项目中有用到与外围系统对接, 总结下通过java.net.URLConnection发送HTTP请求的方法。

    参考博客:http://www.cnblogs.com/nick-huang/p/3859353.html

    由于项目较小,并且只查询一个外部接口数据,采用了简单的get请求;

    完整代码如下:

     1 package com.ruoyi.api;
     2 
     3 import javax.servlet.http.HttpServletRequest;
     4 
     5 import com.alibaba.fastjson.JSON;
     6 import com.alibaba.fastjson.JSONObject;
     7 import com.ruoyi.api.bus.vo.LinksV2;
     8 import com.ruoyi.api.bus.vo.TopicItemListV2;
     9 import org.apache.commons.collections.CollectionUtils;
    10 import org.slf4j.Logger;
    11 import org.slf4j.LoggerFactory;
    12 import org.springframework.beans.factory.annotation.Value;
    13 import org.springframework.stereotype.Controller;
    14 import org.springframework.web.bind.annotation.RequestMapping;
    15 import org.springframework.web.bind.annotation.ResponseBody;
    16 import java.io.BufferedReader;
    17 import java.io.IOException;
    18 import java.io.InputStreamReader;
    19 import java.net.MalformedURLException;
    20 import java.net.URL;
    21 import java.net.URLConnection;
    22 
    23 import java.util.ArrayList;
    24 import java.util.List;
    25 
    26 @Controller
    27 @RequestMapping("api")
    28 public class testcontroller {
    29 
    30     @Value("${config.getItemInfoUrl}")
    31     private String url;
    32     private static final Logger LOGGER = LoggerFactory.getLogger(testcontroller.class);
    33 
    34     @ResponseBody
    35     @RequestMapping("/data/getlist")
    36     public List<Links>  testlist(HttpServletRequest request) {
    37         String jsonInfo = loadJSON(url);
    38         List<TopicItemListV2> topicItemListV2s = JSONObject.parseArray(jsonInfo, TopicItemListV2.class);
    39         List<Links> linkLists = new ArrayList<>();
    40         if (CollectionUtils.isNotEmpty(topicItemListV2s)){
    41             for (TopicItemListV2 topicItemList : topicItemListV2s){
    42                 Links links = new Links();
    43                 links.setPid("0");
    44                 links.setCode(String.valueOf(topicItemList.getCode()));
    45                 links.setName(topicItemList.getName());
    46                 linkLists.add(links);
    47                 List<LinksV2> linkV2sss = topicItemList.getLinks();
    48                 if (CollectionUtils.isNotEmpty(linkV2sss)){
    49                     for (LinksV2 li :linkV2sss){
    50                         Links linkvvv = new Links();
    51                         linkvvv.setCode(li.getTaskCode());
    52                         linkvvv.setName(li.getTaskName());
    53                         linkvvv.setPid(String.valueOf(topicItemList.getCode()));
    54                         linkLists.add(linkvvv);
    55                     }
    56                 }
    57             }
    58         }
    59         LOGGER.info(JSON.toJSONString(linkLists));
    60         return linkLists;
    61     }
    62 
    63     public  String loadJSON(String url) {
    64         StringBuilder json = new StringBuilder();
    65         BufferedReader in = null;
    66         try {
    67             // 创建url对象
    68             URL reqUrl = new URL(url);
    69             // 打开url链接
    70             URLConnection yc = reqUrl.openConnection();
    71             // 建立实际对象
    72             yc.connect();
    73             // 定义BufferedReader 数据流来读取URL的相应,并设置编码方式
    74             in = new BufferedReader(new InputStreamReader(
    75                     yc.getInputStream(),"utf-8"));
    76             String inputLine = null;
    77             //读取内容
    78             while ((inputLine = in.readLine()) != null) {
    79                 json.append(inputLine);
    80             }
    81         } catch (MalformedURLException e) {
    82             LOGGER.error(" error info" + e);
    83         } catch (IOException e) {
    84             LOGGER.error(" error info" + e);
    85         } finally {
    86             if (null != in){
    87                 try {
    88                     in.close();
    89                 } catch (IOException e) {
    90                     e.printStackTrace();
    91                 }
    92             }
    93         }
    94         return json.toString();
    95     }
    96 }
    开启打怪升级之旅
  • 相关阅读:
    游遍中国 —— 大街小巷、秘境与远方
    Batch Normalization 反向传播(backpropagation )公式的推导
    Batch Normalization 反向传播(backpropagation )公式的推导
    【社会/人文】概念的理解 —— 断舍离、饭(饭制版)
    【社会/人文】概念的理解 —— 断舍离、饭(饭制版)
    linux 线程的同步 一 (互斥量和信号量)
    linux find
    正则表达式30分钟入门教程-新
    linux sed命令详解 *****
    linux vim tutor
  • 原文地址:https://www.cnblogs.com/zhangliwei/p/10150066.html
Copyright © 2011-2022 走看看