链接1:https://blog.csdn.net/java173842219/article/details/54020168

链接2:https://blog.csdn.net/u011320740/article/details/53537484

再添加点代码

  1. package jishuqi;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.DataOutputStream;
  5. import java.io.InputStreamReader;
  6. import java.net.HttpURLConnection;
  7. import java.net.URL;
  8. import java.net.URLEncoder;
  9.  
  10. public class DemoTest {
  11. public static final String GET_URL = "http://112.4.27.9/mall-back/if_user/store_list?storeId=32";
  12. // public static final String POST_URL =
  13. // "http://112.4.27.9/mall-back/if_user/store_list";
  14. // 妙兜测试接口
  15. public static final String POST_URL = "http://121.40.204.191:8180/mdserver/service/installLock";
  16.  
  17. /**
  18. * 接口调用 GET
  19. */
  20. public static void httpURLConectionGET() {
  21. try {
  22. URL url = new URL(GET_URL); // 把字符串转换为URL请求地址
  23. HttpURLConnection connection = (HttpURLConnection) url
  24. .openConnection();// 打开连接
  25. connection.connect();// 连接会话
  26. // 获取输入流
  27. BufferedReader br = new BufferedReader(new InputStreamReader(
  28. connection.getInputStream(), "UTF-8"));
  29. String line;
  30. StringBuilder sb = new StringBuilder();
  31. while ((line = br.readLine()) != null) {// 循环读取流
  32. sb.append(line);
  33. }
  34. br.close();// 关闭流
  35. connection.disconnect();// 断开连接
  36. System.out.println(sb.toString());
  37. } catch (Exception e) {
  38. e.printStackTrace();
  39. System.out.println("失败!");
  40. }
  41. }
  42.  
  43. /**
  44. * 接口调用 POST
  45. */
  46. public static void httpURLConnectionPOST() {
  47. try {
  48. URL url = new URL(POST_URL);
  49. // 将url 以 open方法返回的urlConnection 连接强转为HttpURLConnection连接
  50. // (标识一个url所引用的远程对象连接)
  51. HttpURLConnection connection = (HttpURLConnection) url
  52. .openConnection();// 此时cnnection只是为一个连接对象,待连接中
  53. // 设置连接输出流为true,默认false (post 请求是以流的方式隐式的传递参数)
  54. connection.setDoOutput(true);
  55. // 设置连接输入流为true
  56. connection.setDoInput(true);
  57. // 设置请求方式为post
  58. connection.setRequestMethod("POST");
  59. // post请求缓存设为false
  60. connection.setUseCaches(false);
  61. // 设置该HttpURLConnection实例是否自动执行重定向
  62. connection.setInstanceFollowRedirects(true);
  63. // 设置请求头里面的各个属性 (以下为设置内容的类型,设置为经过urlEncoded编码过的from参数)
  64. // application/x-javascript text/xml->xml数据
  65. // application/x-javascript->json对象
  66. // application/x-www-form-urlencoded->表单数据
  67. // ;charset=utf-8 必须要,不然妙兜那边会出现乱码【★★★★★】
  68. connection.setRequestProperty("Content-Type",
  69. "application/x-www-form-urlencoded;charset=utf-8");
  70. // 建立连接
  71. // (请求未开始,直到connection.getInputStream()方法调用时才发起,以上各个参数设置需在此方法之前进行)
  72. connection.connect();
  73. // 创建输入输出流,用于往连接里面输出携带的参数,(输出内容为?后面的内容)
  74. DataOutputStream dataout = new DataOutputStream(
  75. connection.getOutputStream());
  76. String app_key = "app_key="
  77. + URLEncoder.encode("4f7bf8c8260124e6e9c6bf094951a111",
  78. "utf-8"); // 已修改【改为错误数据,以免信息泄露】
  79. String agt_num = "&agt_num=" + URLEncoder.encode("10111", "utf-8"); // 已修改【改为错误数据,以免信息泄露】
  80. String pid = "&pid=" + URLEncoder.encode("BLZXA150401111", "utf-8"); // 已修改【改为错误数据,以免信息泄露】
  81. String departid = "&departid="
  82. + URLEncoder.encode("10007111", "utf-8"); // 已修改【改为错误数据,以免信息泄露】
  83. String install_lock_name = "&install_lock_name="
  84. + URLEncoder.encode("南天大门", "utf-8");
  85. String install_address = "&install_address="
  86. + URLEncoder.encode("北京育新", "utf-8");
  87. String install_gps = "&install_gps="
  88. + URLEncoder.encode("116.350888,40.011001", "utf-8");
  89. String install_work = "&install_work="
  90. + URLEncoder.encode("小李", "utf-8");
  91. String install_telete = "&install_telete="
  92. + URLEncoder.encode("13000000000", "utf-8");
  93. String intall_comm = "&intall_comm="
  94. + URLEncoder.encode("一切正常", "utf-8");
  95. // 格式 parm = aaa=111&bbb=222&ccc=333&ddd=444
  96. String parm = app_key + agt_num + pid + departid
  97. + install_lock_name + install_address + install_gps
  98. + install_work + install_telete + intall_comm;
  99. // 将参数输出到连接
  100. dataout.writeBytes(parm);
  101. // 输出完成后刷新并关闭流
  102. dataout.flush();
  103. dataout.close(); // 重要且易忽略步骤 (关闭流,切记!)
  104. // System.out.println(connection.getResponseCode());
  105. // 连接发起请求,处理服务器响应 (从连接获取到输入流并包装为bufferedReader)
  106. BufferedReader bf = new BufferedReader(new InputStreamReader(
  107. connection.getInputStream(), "UTF-8"));
  108. String line;
  109. StringBuilder sb = new StringBuilder(); // 用来存储响应数据
  110. // 循环读取流,若不到结尾处
  111. while ((line = bf.readLine()) != null) {
  112. // sb.append(bf.readLine());
  113. sb.append(line).append(System.getProperty("line.separator"));
  114. }
  115. bf.close(); // 重要且易忽略步骤 (关闭流,切记!)
  116. connection.disconnect(); // 销毁连接
  117. System.out.println(sb.toString());
  118. } catch (Exception e) {
  119. e.printStackTrace();
  120. }
  121. }
  122.  
  123. public static void main(String[] args) {
  124. // httpURLConectionGET();
  125. httpURLConnectionPOST();
  126. }
  127. }

http接口的学习(暂时只是记录,测试之后重新更新)的更多相关文章

  1. 学习版pytest内核测试平台开发万字长文入门篇

    前言 2021年,测试平台如雨后春笋般冒了出来,我就是其中一员,写了一款pytest内核测试平台,在公司落地.分享出来后,有同学觉得挺不错,希望能开源,本着"公司代码不要传到网上去,以免引起 ...

  2. Spring Boot AOP 扫盲,实现接口访问的统一日志记录

    AOP 是 Spring 体系中非常重要的两个概念之一(另外一个是 IoC),今天这篇文章就来带大家通过实战的方式,在编程猫 SpringBoot 项目中使用 AOP 技术为 controller 层 ...

  3. Java学习-007-Log4J 日志记录配置文件详解及实例源代码

    此文主要讲述在初学 Java 时,常用的 Log4J 日志记录配置文件详解及实例源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:20 ...

  4. API接口开发 配置、实现、测试

    Yii2 基于RESTful架构的 advanced版API接口开发 配置.实现.测试 环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到 ...

  5. 阶段2-新手上路\项目-移动物体监控系统\Sprint2-摄像头子系统开发\第2节-V4L2图像编程接口深度学习

    参考资料: http://www.cnblogs.com/emouse/archive/2013/03/04/2943243.htmlhttp://blog.csdn.net/eastmoon5021 ...

  6. Vue学习笔记-Django REST framework3后端接口API学习

    一  使用环境 开发系统: windows 后端IDE: PyCharm 前端IDE: VSCode 数据库: msyql,navicat 编程语言: python3.7  (Windows x86- ...

  7. 值得学习的C/C++开源项目 持续更新

    值得学习的C语言开源项目 持续更新 文章目录 值得学习的C语言开源项目 持续更新 - 1. Webbench - 2. Tinyhttpd - 3. cJSON - 4. CMockery - 5. ...

  8. centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课

    centos  DNS服务搭建  DNS原理  使用bind搭建DNS服务器 配置DNS转发 配置主从  安装dig工具  DHCP  dhclient  各种域名解析记录  mydns DNS动态更 ...

  9. go学习之文件读取问题(需更新)

    go学习之文件读取问题(需更新) 一,问题: 今天做一个GO广度迷宫问题时,出现了一个奇怪的问题. 就是通过fmt.Fscanf()读取文件时,每行末尾多出一个0. 二,问题代码: 1,输入文件maz ...

  10. 视频+图文串讲:MySQL 行锁、间隙锁、Next-Key-Lock、以及实现记录存在的话就更新,如果记录不存在的话就插入如何保证并发安全

    导读 Hi,大家好!我是白日梦!本文是MySQL专题的第 27 篇. 下文还是白日梦以自导自演的方式,围绕"如何实现记录存在的话就更新,如果记录不存在的话就插入."展开本话题.看看 ...

随机推荐

  1. ThreadLocal全面解析,一篇带你入门

    ===================== 大厂面试题: 1.Java中的引用类型有哪几种? 2.每种引用类型的特点是什么? 3.每种引用类型的应用场景是什么? 4.ThreadLocal你了解吗 5 ...

  2. Java数组模拟队列 + 优化

    队列介绍 队列是一个有序列表,可以用数组或是链表来实现. 遵循先入先出的原则. 即:先存入队列的数据,要先取出.后存入的要后取出 示意图:(使用数组模拟队列示意图)  数组模拟队列 队列本身是有序列表 ...

  3. Codeforces Round #657 (Div. 2) A. Acacius and String(字符串)

    题目链接:https://codeforces.com/contest/1379/problem/A 题意 给出一个由 '?' 和小写字母组成的字符串,可以将 '?' 替换为小写字母,判断是否存在一种 ...

  4. 牛客网暑期ACM多校训练营(第二场)carpet

    传送门:carpet 题意 有一个n*m的地毯,aij表示地毯每格的元素,bij表示地毯每格的价格,要求选取一块价格最大值最小的地毯,并且这块地毯无限铺开之后,原地毯是其子矩阵. 题解 先找到这个矩阵 ...

  5. Codeforces Round #604 (Div. 2) A. Beautiful String(贪心)

    题目链接:https://codeforces.com/contest/1265/problem/A 题意 给出一个由 a, b, c, ? 组成的字符串,将 ? 替换为 a, b, c 中的一个字母 ...

  6. 西南民族大学第十二届程序设计竞赛(同步赛) A.逃出机房 (bfs)

    题意:有来两个人A和B,A追B,A和B每次向上下左右移动一个单位,一共有两扇门,问A是否可以追上B(在门口追上也算合法). 题解:当时看题意说在门口也算?就觉得是判断两个人到门口的时间,对他们两个人分 ...

  7. JavaScript函数console、this关键字

    console.dir()打印出来的东西不加任何操作 console.log()打印出来东西实现进行了操作,打印出来的东西可能不是原型 具体对象的类型可以在"_proto_"中看, ...

  8. 使用Github+jsDelivr搭建图床和存储服务

    使用元素 我的博客NLNet 并未搭建自己的博客,使用博客园(cnblogs),自定义了主题NLNet-Theme. 写作工具Typora 优秀的Markdown编辑器.参考NLNet-Theme,我 ...

  9. 微软大楼设计方案(中等) 推公式+RMQ问题

    近日,微软新大楼的设计方案正在广泛征集中,其中一种方案格外引人注目.在这个方案中,大楼由 nn 栋楼组成,这些楼从左至右连成一排,编号依次为 11 到 nn,其中第 ii 栋楼有 h_ih​i​​层. ...

  10. HDU 4049 Tourism Planning(状压DP)题解

    题意:m个城市,n个人,让这n个人按固定顺序走遍m个城市.每个城市有一个单人票价pi.每个人在每个城市能获得vij的价值.如果多个人在同一城市,那么会额外获得价值,给出一张n * n价值表,额外价值为 ...