http接口的学习(暂时只是记录,测试之后重新更新)
链接1:https://blog.csdn.net/java173842219/article/details/54020168
链接2:https://blog.csdn.net/u011320740/article/details/53537484
再添加点代码
- package jishuqi;
- import java.io.BufferedReader;
- import java.io.DataOutputStream;
- import java.io.InputStreamReader;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.net.URLEncoder;
- public class DemoTest {
- public static final String GET_URL = "http://112.4.27.9/mall-back/if_user/store_list?storeId=32";
- // public static final String POST_URL =
- // "http://112.4.27.9/mall-back/if_user/store_list";
- // 妙兜测试接口
- public static final String POST_URL = "http://121.40.204.191:8180/mdserver/service/installLock";
- /**
- * 接口调用 GET
- */
- public static void httpURLConectionGET() {
- try {
- URL url = new URL(GET_URL); // 把字符串转换为URL请求地址
- HttpURLConnection connection = (HttpURLConnection) url
- .openConnection();// 打开连接
- connection.connect();// 连接会话
- // 获取输入流
- BufferedReader br = new BufferedReader(new InputStreamReader(
- connection.getInputStream(), "UTF-8"));
- String line;
- StringBuilder sb = new StringBuilder();
- while ((line = br.readLine()) != null) {// 循环读取流
- sb.append(line);
- }
- br.close();// 关闭流
- connection.disconnect();// 断开连接
- System.out.println(sb.toString());
- } catch (Exception e) {
- e.printStackTrace();
- System.out.println("失败!");
- }
- }
- /**
- * 接口调用 POST
- */
- public static void httpURLConnectionPOST() {
- try {
- URL url = new URL(POST_URL);
- // 将url 以 open方法返回的urlConnection 连接强转为HttpURLConnection连接
- // (标识一个url所引用的远程对象连接)
- HttpURLConnection connection = (HttpURLConnection) url
- .openConnection();// 此时cnnection只是为一个连接对象,待连接中
- // 设置连接输出流为true,默认false (post 请求是以流的方式隐式的传递参数)
- connection.setDoOutput(true);
- // 设置连接输入流为true
- connection.setDoInput(true);
- // 设置请求方式为post
- connection.setRequestMethod("POST");
- // post请求缓存设为false
- connection.setUseCaches(false);
- // 设置该HttpURLConnection实例是否自动执行重定向
- connection.setInstanceFollowRedirects(true);
- // 设置请求头里面的各个属性 (以下为设置内容的类型,设置为经过urlEncoded编码过的from参数)
- // application/x-javascript text/xml->xml数据
- // application/x-javascript->json对象
- // application/x-www-form-urlencoded->表单数据
- // ;charset=utf-8 必须要,不然妙兜那边会出现乱码【★★★★★】
- connection.setRequestProperty("Content-Type",
- "application/x-www-form-urlencoded;charset=utf-8");
- // 建立连接
- // (请求未开始,直到connection.getInputStream()方法调用时才发起,以上各个参数设置需在此方法之前进行)
- connection.connect();
- // 创建输入输出流,用于往连接里面输出携带的参数,(输出内容为?后面的内容)
- DataOutputStream dataout = new DataOutputStream(
- connection.getOutputStream());
- String app_key = "app_key="
- + URLEncoder.encode("4f7bf8c8260124e6e9c6bf094951a111",
- "utf-8"); // 已修改【改为错误数据,以免信息泄露】
- String agt_num = "&agt_num=" + URLEncoder.encode("10111", "utf-8"); // 已修改【改为错误数据,以免信息泄露】
- String pid = "&pid=" + URLEncoder.encode("BLZXA150401111", "utf-8"); // 已修改【改为错误数据,以免信息泄露】
- String departid = "&departid="
- + URLEncoder.encode("10007111", "utf-8"); // 已修改【改为错误数据,以免信息泄露】
- String install_lock_name = "&install_lock_name="
- + URLEncoder.encode("南天大门", "utf-8");
- String install_address = "&install_address="
- + URLEncoder.encode("北京育新", "utf-8");
- String install_gps = "&install_gps="
- + URLEncoder.encode("116.350888,40.011001", "utf-8");
- String install_work = "&install_work="
- + URLEncoder.encode("小李", "utf-8");
- String install_telete = "&install_telete="
- + URLEncoder.encode("13000000000", "utf-8");
- String intall_comm = "&intall_comm="
- + URLEncoder.encode("一切正常", "utf-8");
- // 格式 parm = aaa=111&bbb=222&ccc=333&ddd=444
- String parm = app_key + agt_num + pid + departid
- + install_lock_name + install_address + install_gps
- + install_work + install_telete + intall_comm;
- // 将参数输出到连接
- dataout.writeBytes(parm);
- // 输出完成后刷新并关闭流
- dataout.flush();
- dataout.close(); // 重要且易忽略步骤 (关闭流,切记!)
- // System.out.println(connection.getResponseCode());
- // 连接发起请求,处理服务器响应 (从连接获取到输入流并包装为bufferedReader)
- BufferedReader bf = new BufferedReader(new InputStreamReader(
- connection.getInputStream(), "UTF-8"));
- String line;
- StringBuilder sb = new StringBuilder(); // 用来存储响应数据
- // 循环读取流,若不到结尾处
- while ((line = bf.readLine()) != null) {
- // sb.append(bf.readLine());
- sb.append(line).append(System.getProperty("line.separator"));
- }
- bf.close(); // 重要且易忽略步骤 (关闭流,切记!)
- connection.disconnect(); // 销毁连接
- System.out.println(sb.toString());
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
- // httpURLConectionGET();
- httpURLConnectionPOST();
- }
- }
http接口的学习(暂时只是记录,测试之后重新更新)的更多相关文章
- 学习版pytest内核测试平台开发万字长文入门篇
前言 2021年,测试平台如雨后春笋般冒了出来,我就是其中一员,写了一款pytest内核测试平台,在公司落地.分享出来后,有同学觉得挺不错,希望能开源,本着"公司代码不要传到网上去,以免引起 ...
- Spring Boot AOP 扫盲,实现接口访问的统一日志记录
AOP 是 Spring 体系中非常重要的两个概念之一(另外一个是 IoC),今天这篇文章就来带大家通过实战的方式,在编程猫 SpringBoot 项目中使用 AOP 技术为 controller 层 ...
- Java学习-007-Log4J 日志记录配置文件详解及实例源代码
此文主要讲述在初学 Java 时,常用的 Log4J 日志记录配置文件详解及实例源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:20 ...
- API接口开发 配置、实现、测试
Yii2 基于RESTful架构的 advanced版API接口开发 配置.实现.测试 环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到 ...
- 阶段2-新手上路\项目-移动物体监控系统\Sprint2-摄像头子系统开发\第2节-V4L2图像编程接口深度学习
参考资料: http://www.cnblogs.com/emouse/archive/2013/03/04/2943243.htmlhttp://blog.csdn.net/eastmoon5021 ...
- Vue学习笔记-Django REST framework3后端接口API学习
一 使用环境 开发系统: windows 后端IDE: PyCharm 前端IDE: VSCode 数据库: msyql,navicat 编程语言: python3.7 (Windows x86- ...
- 值得学习的C/C++开源项目 持续更新
值得学习的C语言开源项目 持续更新 文章目录 值得学习的C语言开源项目 持续更新 - 1. Webbench - 2. Tinyhttpd - 3. cJSON - 4. CMockery - 5. ...
- centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课
centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更 ...
- go学习之文件读取问题(需更新)
go学习之文件读取问题(需更新) 一,问题: 今天做一个GO广度迷宫问题时,出现了一个奇怪的问题. 就是通过fmt.Fscanf()读取文件时,每行末尾多出一个0. 二,问题代码: 1,输入文件maz ...
- 视频+图文串讲:MySQL 行锁、间隙锁、Next-Key-Lock、以及实现记录存在的话就更新,如果记录不存在的话就插入如何保证并发安全
导读 Hi,大家好!我是白日梦!本文是MySQL专题的第 27 篇. 下文还是白日梦以自导自演的方式,围绕"如何实现记录存在的话就更新,如果记录不存在的话就插入."展开本话题.看看 ...
随机推荐
- ThreadLocal全面解析,一篇带你入门
===================== 大厂面试题: 1.Java中的引用类型有哪几种? 2.每种引用类型的特点是什么? 3.每种引用类型的应用场景是什么? 4.ThreadLocal你了解吗 5 ...
- Java数组模拟队列 + 优化
队列介绍 队列是一个有序列表,可以用数组或是链表来实现. 遵循先入先出的原则. 即:先存入队列的数据,要先取出.后存入的要后取出 示意图:(使用数组模拟队列示意图) 数组模拟队列 队列本身是有序列表 ...
- Codeforces Round #657 (Div. 2) A. Acacius and String(字符串)
题目链接:https://codeforces.com/contest/1379/problem/A 题意 给出一个由 '?' 和小写字母组成的字符串,可以将 '?' 替换为小写字母,判断是否存在一种 ...
- 牛客网暑期ACM多校训练营(第二场)carpet
传送门:carpet 题意 有一个n*m的地毯,aij表示地毯每格的元素,bij表示地毯每格的价格,要求选取一块价格最大值最小的地毯,并且这块地毯无限铺开之后,原地毯是其子矩阵. 题解 先找到这个矩阵 ...
- Codeforces Round #604 (Div. 2) A. Beautiful String(贪心)
题目链接:https://codeforces.com/contest/1265/problem/A 题意 给出一个由 a, b, c, ? 组成的字符串,将 ? 替换为 a, b, c 中的一个字母 ...
- 西南民族大学第十二届程序设计竞赛(同步赛) A.逃出机房 (bfs)
题意:有来两个人A和B,A追B,A和B每次向上下左右移动一个单位,一共有两扇门,问A是否可以追上B(在门口追上也算合法). 题解:当时看题意说在门口也算?就觉得是判断两个人到门口的时间,对他们两个人分 ...
- JavaScript函数console、this关键字
console.dir()打印出来的东西不加任何操作 console.log()打印出来东西实现进行了操作,打印出来的东西可能不是原型 具体对象的类型可以在"_proto_"中看, ...
- 使用Github+jsDelivr搭建图床和存储服务
使用元素 我的博客NLNet 并未搭建自己的博客,使用博客园(cnblogs),自定义了主题NLNet-Theme. 写作工具Typora 优秀的Markdown编辑器.参考NLNet-Theme,我 ...
- 微软大楼设计方案(中等) 推公式+RMQ问题
近日,微软新大楼的设计方案正在广泛征集中,其中一种方案格外引人注目.在这个方案中,大楼由 nn 栋楼组成,这些楼从左至右连成一排,编号依次为 11 到 nn,其中第 ii 栋楼有 h_ihi层. ...
- HDU 4049 Tourism Planning(状压DP)题解
题意:m个城市,n个人,让这n个人按固定顺序走遍m个城市.每个城市有一个单人票价pi.每个人在每个城市能获得vij的价值.如果多个人在同一城市,那么会额外获得价值,给出一张n * n价值表,额外价值为 ...