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 }
    开启打怪升级之旅
  • 相关阅读:
    一个简单的knockout.js 和easyui的绑定
    knockoutjs + easyui.treegrid 可编辑的自定义绑定插件
    Knockout自定义绑定my97datepicker
    去除小数后多余的0
    Windows Azure Web Site (15) 取消Azure Web Site默认的IIS ARR
    Azure ARM (1) UI初探
    Azure Redis Cache (3) 创建和使用P级别的Redis Cache
    Windows Azure HandBook (7) 基于Azure Web App的企业官网改造
    Windows Azure Storage (23) 计算Azure VHD实际使用容量
    Windows Azure Virtual Network (11) 创建VNet-to-VNet的连接
  • 原文地址:https://www.cnblogs.com/zhangliwei/p/10150066.html
Copyright © 2011-2022 走看看