Java 使用 URLConnection 模拟 Http Get和Post 提交
2019独角兽企业重金招聘Python工程师标准>>>
Java 使用 URLConnection 模拟 Http Get和Post 提交。
1、URLConnectionHelper
package com.hcm.rulconnetion.utils;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;public class URLConnectionHelper {/*** 向指定URL发送GET方法的请求* * @param url* 发送请求的URL* @param params* 请求参数,请求参数应该是name1=value1&name2=value2的形式。* @return URL所代表远程资源的响应*/public static String sendGet(String url, String params) {String result = "";BufferedReader in = null;try {String urlName = url + "?" + params;URL realUrl = new URL(urlName);// 打开和URL之间的连接URLConnection conn = realUrl.openConnection();// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");// 建立实际的连接conn.connect();// 获取所有响应头字段Map<String, List<String>> map = conn.getHeaderFields();// 遍历所有的响应头字段for (String key : map.keySet()) {System.out.println(key + "--->" + map.get(key));}// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null) {result += "\n" + line;}} catch (Exception e) {System.out.println("发送GET请求出现异常!" + e);e.printStackTrace();}// 使用finally块来关闭输入流finally {try {if (in != null) {in.close();}} catch (IOException ex) {ex.printStackTrace();}}return result;}/*** 向指定URL发送POST方法的请求* * @param url* 发送请求的URL* @param params* 请求参数,请求参数应该是name1=value1&name2=value2的形式。* @return URL所代表远程资源的响应*/public static String sendPost(String url, String params) {PrintWriter out = null;BufferedReader in = null;String result = "";try {URL realUrl = new URL(url);// 打开和URL之间的连接URLConnection conn = realUrl.openConnection();// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");// 发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);// 获取URLConnection对象对应的输出流out = new PrintWriter(conn.getOutputStream());// 发送请求参数out.print(params);// flush输出流的缓冲out.flush();// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null) {result += "\n" + line;}} catch (Exception e) {System.out.println("发送POST请求出现异常!" + e);e.printStackTrace();}// 使用finally块来关闭输出流、输入流finally {try {if (out != null) {out.close();}if (in != null) {in.close();}} catch (IOException ex) {ex.printStackTrace();}}return result;}
}
2、测试sendGet方法
@Test
public void testSendGet() {String url = "http://127.0.0.1:8086/web_test/a.jsp";String str = URLConnectionHelper.sendGet(url, null);System.out.println(str);
}
3、测试sendPost方法
@Test
public void testSendPost() {String url = "http://127.0.0.1:8086/web_test/UserLoginServlet";String params = "username=admin&password=123456";String str = URLConnectionHelper.sendPost(url, params);System.out.println(str);
}
转载于:https://my.oschina.net/huangcongmin12/blog/159345
Java 使用 URLConnection 模拟 Http Get和Post 提交相关推荐
- Mockito:一个强大的用于Java开发的模拟测试框架
介绍 本文将介绍模拟测试框架Mockito的一些基础概念, 介绍该框架的优点,讲解应用Mockito的Java示例. 模拟(Mock)的概念 在软件开发的世界之外, "mock"一 ...
- 无忧考吧2017二级java_二级Java模拟软件|无忧考吧二级Java语言程序设计模拟软件下载 v2017.03官方版 - 121下载站...
无忧考吧二级Java语言程序设计模拟软件是专为准备考试二级JAVA语言的朋友打造的一款在线模拟软件,二级JAVA语言的考试理论上是非常简单的, 大家只需要掌握基本的语法和一些简单的编程就可能了,这款软 ...
- 【练习题】构造方法 编写Java程序,模拟简单的计算器。
package day09; /*1.[练习题]构造方法 编写Java程序,模拟简单的计算器. 定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有.编写构造方法,赋予n1和n2初 ...
- 通过java.net.URLConnection发送HTTP请求的方法
2019独角兽企业重金招聘Python工程师标准>>> 1.GET与POST请求的区别 a) get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet, b) ...
- Java制作一个盒子程序_编写一个简单的Java程序,模拟计算器的功能。
提问:编写一个简单的Java程序,模拟计算器的功能. 网友回答: 程序参考: import java.awt.*; import java.awt.event.ActionEvent; import ...
- Java枚举(用Java普通类模拟枚举的实现原理及JDK枚举API使用示例)
枚举的特点: ◆类型安全(Type Safety) ◆紧凑有效的枚举数值定义(Compact, Efficient Declaration of Enumerated Values) ◆无缝的和程 ...
- 【算法】java 用 数组 模拟 队列
本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载. 文章目录 1.概述 1.概述 本次使用java 用 数组 模拟 队列 package com.algor ...
- 通过java.net.URLConnection发送HTTP请求
为什么80%的码农都做不了架构师?>>> 最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给服务器,post与get ...
- Java——使用多线程模拟真实高并发业务并保证安全性(一)
作者专注于Java.架构.Linux.小程序.爬虫.自动化等技术. 工作期间含泪整理出一些资料,微信搜索[javaUp],回复 [java][黑客][爬虫][小程序][面试]等关键字免费获取资料.技术 ...
最新文章
- Python基础知识(五)--数据类型
- Linux中mysql的操作
- SAP Marketing cloud里的campaign管理
- 获取系统信息2——linux中使用随机数
- 推荐10个优秀GitHub仓库
- 给小白的 Nginx 30分钟入门指南
- webpack 的使用教程
- 小鼠血清白蛋白包裹四氧化三铁纳米粒
- 关于3阶Volterra滤波器一些理解
- FSA-Net环境配置
- AD(altium designer)15原理图与PCB设计教程(四)——电路原理图设计进阶
- 抖音矩阵号搭建及开发思路分享丨抖音矩阵源码丨抖音矩阵号运营
- 应急响应-linux-webshell查查杀工具:河马webshell查杀和深信服Webshell
- 最新淘宝商品销量接口API(精准总销月销)
- Kafka3.0.0单机安装及简单使用
- 有什么编辑图片加文字的软件?今日推荐:图片编辑软件加文字
- 大数据与云计算学习计划 (一) 云计算系统管理 6 Linux中RPM软件包管理操作 、 Yum软件包仓库操作(概念与实操)
- python读取excel批量下载图片
- 茄子科技(海外SHAREit Group),助力跨境电商有效实现出海稳定发展
- Drools规则引擎平台如何进行架构