公司项目需要访问jira平台,需要对传输数据进行转码,否则乱码导致查询出错。

一、前端代码

 //获取系统和相应系统的领域负责人function getSystem(){$.ajax({url : '${pageContext.request.contextPath}/IT00015Controller/doGet.action',type : 'get',async : false,data : {url: 'http://***.***.com/rest/insight/1.0/iql/objects?objectSchemaId=21&iql=objectTypeId=266'},dataType : 'json',success : function (result) {systemManager = result;}});}

这里将"服务名称"中文字符转换成了

%E7%B3%BB%E7%BB%9F%E5%B7%A5%E5%85%B7

二、Controller层

 @RequestMapping("/doGet")@ResponseBodypublic List<Map<String,Object>> doGet(String url) {Session session = SecurityUtils.getSubject().getSession();try {String objectType = URLEncoder.encode("服务名称", "UTF-8");URL urlStr = new URL(url + objectType + "&resultPerPage=500");List<Map<String, Object>> result = it00015Service.doGet(urlStr,"s-servicedesk:BenDan11");return result;} catch (IOException e) {e.printStackTrace();}return null;}

Service层

 public List<Map<String,Object>> doGet(URL urlStr, String token) {HttpURLConnection connection = null;InputStream is = null;BufferedReader br = null;String result = null;// 返回结果字符串List<Map<String,Object>> maps = new ArrayList<>();try {// 通过远程url连接对象打开一个连接,强转成httpURLConnection类connection = (HttpURLConnection) urlStr.openConnection();connection.setRequestProperty("Content-Type","application/json;charset=UTF-8");connection.setRequestProperty("accept", "*/*");connection.setRequestProperty("connection", "Keep-Alive");connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");connection.setDoInput(true);connection.setDoOutput(true);connection.setRequestProperty("Authorization","Basic " + new Base64Encoder().encode(token.getBytes()));//connection.setRequestProperty("Authorization","Basic " + new Base64Encoder().encode("60055859:169533#A".getBytes()));// 设置连接方式:getconnection.setRequestMethod("GET");// 设置连接主机服务器的超时时间:15000毫秒connection.setConnectTimeout(15000);// 设置读取远程返回的数据时间:60000毫秒connection.setReadTimeout(600000);// 发送请求connection.connect();// 通过connection连接,获取输入流if (connection.getResponseCode() == 200) {is = connection.getInputStream();// 封装输入流is,并指定字符集br = new BufferedReader(new InputStreamReader(is, "UTF-8"));// 存放数据StringBuilder sbf = new StringBuilder();String temp = null;while ((temp = br.readLine()) != null) {sbf.append(temp);sbf.append("\r\n");}result = sbf.toString();Map<String,Object> map = JSON.parseObject(result);JSONArray jsonArray = new JSONArray(map.get("objectEntries").toString());for(int i = 0;i<jsonArray.length();i++){Map<String,Object> map2 = new HashMap<>();map2.put("name",jsonArray.getJSONObject(i).get("name").toString());String str = jsonArray.getJSONObject(i).get("attributes").toString();JSONArray jsonArray1 = new JSONArray(str);for(int j = 0;j <jsonArray1.length();j++ ){//生产环境if(("2345").equals(jsonArray1.getJSONObject(j).get("objectTypeAttributeId").toString())){String str1 = jsonArray1.getJSONObject(j).get("objectAttributeValues").toString();if("[]".equals(str1)){map2.put("owner","null");}else{JSONArray jsonArray2 = new JSONArray(str1);map2.put("owner",jsonArray2.getJSONObject(0).get("displayValue").toString());}break;}}maps.add(map2);}}} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {// 关闭资源if (null != br) {try {br.close();} catch (IOException e) {e.printStackTrace();}}if (null != is) {try {is.close();} catch (IOException e) {e.printStackTrace();}}connection.disconnect();// 关闭远程连接}return maps;}

关于URLEncoder.encode的用法相关推荐

  1. URLEncoder.encode(str,编码) new URLDecoder().decode(str,编码)

    try   {                                 String enUft = URLEncoder.encode("广东省福利彩票开奖信息网", & ...

  2. URLEncoder.encode转译后“空格”变“加号”的问题的解决方案

    URLEncoder.encode转译后"空格"变"加号"的问题的解决方案 参考文章: (1)URLEncoder.encode转译后"空格" ...

  3. 关于java.net.URLEncoder.encode编码问题

    Q:java.net.URLEncoder.encode里的编码和什么有关的? A:使用urlencoder编码会将中文变成你在浏览器地址栏看到的%XX形式,至于选择哪种enc编码跟你jvm的defa ...

  4. URLEncoder.encode问题

    遇到java里的URLEncoder.encode方法编码后与javascript的encodeURIComponent方法的结果有点不一样,找了一下资料,原来URLEncoder实现的是HTML形式 ...

  5. java encode 空格_javaWeb中URLEncoder.encode空格问题

    近期开发一个在线坐席的功能.发现推送的消息中空格变成了+ .查询发现URLEncoder.encode的问题.曾经用的时候也没注意过,解决的方法网上是对URLEncoder.encode的之后的字符串 ...

  6. java的URLEncoder.encode() 疑问与解惑

    疑问 空格变成了+? -*.不能转换url编码? 解惑 URL 编码通常使用加号(+)或 %20 替代空格. 如果要转换为%20,可以先进行转换编码,再替换 + 为 %20 **注意:**在JavaS ...

  7. URLEncoder.encode的默认编码问题

    今天要实现的一个功能是在页面上上传文件到后台,文件是txt格式,每行是一个url,后台读取后,对路径中的中文进行url编码 如下是我的代码: Pattern chinesePattern = Patt ...

  8. 中文乱码在java中URLEncoder.encode方法要调用两次解决

    2019独角兽企业重金招聘Python工程师标准>>> 因为在jsp中对中文进行了编码的时候用的是UTF-8的编码方式,而在servlet中调用request.getParamete ...

  9. URLDecoder.decode与URLEncoder.encode

    URLEncoder.encode: 这是编码: 如: 1.要把文本框中中的内容存到cookie里面,由于cookie是ASCLL编码方式,所以要把文本框中的内容编码到ascll,便于存到cookie ...

最新文章

  1. 【Qt】Qt发布可执行程序(打包依赖库)
  2. 这12张手绘图,让我彻底搞懂了微服务架构!
  3. centos7安装mongodb详解
  4. vue-cli3打包注意路径的问题
  5. Android App自适应draw9patch不失真背景
  6. 关于IOS中safari下的select下拉菜单,文字过长不换行的问题
  7. php文本框自动补全,PHP自动补全表单的两种方法
  8. Windows Server 2008R2 Web服务器
  9. 回味Python2.7——笔记3
  10. 单片机 上传服务器协议,单片机数据上传到云服务器
  11. 模型调参:概述【weight_decay、base_lr、lr_policy、clip_norm】【超参数调优方式:网格搜索(尝试所有可能组合)、随机搜索(在所有可能组合中随机选取参数组合)】
  12. internet信息服务器管理器,细述Win10系统上开启internet信息服务(iis)管理器的操作步骤...
  13. 浅谈敏捷思想-06.精益创业
  14. 【python教程入门学习】Python转义字符及用法
  15. 批准此iphone 前往已登录iCloud的其他设备来批准这台iPhone
  16. P1162 填图颜色 洛谷(BFS的简单应用)
  17. 英特尔oneAPI——异构计算学习总结
  18. 这是不是你在找的【电销帮手】——人机耦合佳信静默机器人
  19. Windows中FTP搭建
  20. 计算机在英语课堂的应用,浅谈信息化技术在英语课堂的应用

热门文章

  1. 火影忍者手游的自动化玩法思路(适合其他养成类游戏)
  2. 区块链源码分析-flag
  3. 程序拍了拍你:来看看如何避开路由雷区
  4. SPSS——直线相关与回归
  5. php 孕周自测,妇产基本功 | 孕周的计算,你真的掌握了吗?
  6. 阿里云挖矿./trace -r 2 -R 2 --keepalive --no-color --donate-level 1 --max-cpu-usage 10
  7. 记录历经三天将自己的yolov5模型部署到Android安卓手机
  8. ntp同步 mysql_vcenter和vdp设置ntp时间同步
  9. 刚体运动学公式_动力学的三大基本公式是什么?
  10. 防qq聊天界面纯HTML5,html5 实现qq聊天的气泡效果