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 提交相关推荐

  1. Mockito:一个强大的用于Java开发的模拟测试框架

    介绍 本文将介绍模拟测试框架Mockito的一些基础概念, 介绍该框架的优点,讲解应用Mockito的Java示例. 模拟(Mock)的概念 在软件开发的世界之外, "mock"一 ...

  2. 无忧考吧2017二级java_二级Java模拟软件|无忧考吧二级Java语言程序设计模拟软件下载 v2017.03官方版 - 121下载站...

    无忧考吧二级Java语言程序设计模拟软件是专为准备考试二级JAVA语言的朋友打造的一款在线模拟软件,二级JAVA语言的考试理论上是非常简单的, 大家只需要掌握基本的语法和一些简单的编程就可能了,这款软 ...

  3. 【练习题】构造方法 编写Java程序,模拟简单的计算器。

    package day09; /*1.[练习题]构造方法 编写Java程序,模拟简单的计算器. 定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有.编写构造方法,赋予n1和n2初 ...

  4. 通过java.net.URLConnection发送HTTP请求的方法

    2019独角兽企业重金招聘Python工程师标准>>> 1.GET与POST请求的区别 a) get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet, b) ...

  5. Java制作一个盒子程序_编写一个简单的Java程序,模拟计算器的功能。

    提问:编写一个简单的Java程序,模拟计算器的功能. 网友回答: 程序参考: import java.awt.*; import java.awt.event.ActionEvent; import ...

  6. Java枚举(用Java普通类模拟枚举的实现原理及JDK枚举API使用示例)

    枚举的特点: ◆类型安全(Type Safety)  ◆紧凑有效的枚举数值定义(Compact, Efficient Declaration of Enumerated Values)  ◆无缝的和程 ...

  7. 【算法】java 用 数组 模拟 队列

    本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载. 文章目录 1.概述 1.概述 本次使用java 用 数组 模拟 队列 package com.algor ...

  8. 通过java.net.URLConnection发送HTTP请求

    为什么80%的码农都做不了架构师?>>>    最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给服务器,post与get ...

  9. Java——使用多线程模拟真实高并发业务并保证安全性(一)

    作者专注于Java.架构.Linux.小程序.爬虫.自动化等技术. 工作期间含泪整理出一些资料,微信搜索[javaUp],回复 [java][黑客][爬虫][小程序][面试]等关键字免费获取资料.技术 ...

最新文章

  1. Python基础知识(五)--数据类型
  2. Linux中mysql的操作
  3. SAP Marketing cloud里的campaign管理
  4. 获取系统信息2——linux中使用随机数
  5. 推荐10个优秀GitHub仓库
  6. 给小白的 Nginx 30分钟入门指南
  7. webpack 的使用教程
  8. 小鼠血清白蛋白包裹四氧化三铁纳米粒
  9. 关于3阶Volterra滤波器一些理解
  10. FSA-Net环境配置
  11. AD(altium designer)15原理图与PCB设计教程(四)——电路原理图设计进阶
  12. 抖音矩阵号搭建及开发思路分享丨抖音矩阵源码丨抖音矩阵号运营
  13. 应急响应-linux-webshell查查杀工具:河马webshell查杀和深信服Webshell
  14. 最新淘宝商品销量接口API(精准总销月销)
  15. Kafka3.0.0单机安装及简单使用
  16. 有什么编辑图片加文字的软件?今日推荐:图片编辑软件加文字
  17. 大数据与云计算学习计划 (一) 云计算系统管理 6 Linux中RPM软件包管理操作 、 Yum软件包仓库操作(概念与实操)
  18. python读取excel批量下载图片
  19. 茄子科技(海外SHAREit Group),助力跨境电商有效实现出海稳定发展
  20. Drools规则引擎平台如何进行架构

热门文章

  1. pillow模块批量 读取图像、旋转、放缩、裁剪图片等操作
  2. 2017年最受欢迎的10个编程挑战网站
  3. SpringMVC之文件上传和文件下载
  4. 远程代理模式-Remote Proxy(Java实现)
  5. 集合之四:List接口
  6. mybatis的快速入门
  7. jTessBoxEditor工具进行Tesseract3.02.02样本训练
  8. 【Python】学习笔记一:Hello world
  9. Android Studio 中的FindBugs插件使用,轻松帮你发现Bug (转)
  10. 微信小程序开发(1)