java中原生的发送http请求(无任何的jar包导入)

  1 package com.teamsun.pay.wxpay.util;
  2
  3 import java.io.BufferedReader;
  4 import java.io.IOException;
  5 import java.io.InputStreamReader;
  6 import java.io.PrintWriter;
  7 import java.net.URL;
  8 import java.net.URLConnection;
  9 import java.util.List;
 10 import java.util.Map;
 11
 12 public class HttpRequest {
 13     /**
 14      * 向指定URL发送GET方法的请求
 15      *
 16      * @param url
 17      *            发送请求的URL
 18      * @param param
 19      *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
 20      * @return URL 所代表远程资源的响应结果
 21      */
 22     public static String sendGet(String url, String param) {
 23         String result = "";
 24         BufferedReader in = null;
 25         try {
 26             String urlNameString = url + "?" + param;
 27             URL realUrl = new URL(urlNameString);
 28             // 打开和URL之间的连接
 29             URLConnection connection = realUrl.openConnection();
 30             // 设置通用的请求属性
 31             connection.setRequestProperty("accept", "*/*");
 32             connection.setRequestProperty("connection", "Keep-Alive");
 33             connection.setRequestProperty("user-agent",
 34                     "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
 35             //setConnectTimeout:设置连接主机超时(单位:毫秒)
 36             connection.setConnectTimeout(2000);//2秒超时
 37             //setReadTimeout:设置从主机读取数据超时(单位:毫秒)
 38             //connection.setReadTimeout(2000);
 39
 40             // 建立实际的连接
 41             connection.connect();
 42             // 获取所有响应头字段
 43             Map<String, List<String>> map = connection.getHeaderFields();
 44             // 遍历所有的响应头字段
 45             for (String key : map.keySet()) {
 46                 System.out.println(key + "--->" + map.get(key));
 47             }
 48             // 定义 BufferedReader输入流来读取URL的响应
 49             in = new BufferedReader(new InputStreamReader(
 50                     connection.getInputStream()));
 51             String line;
 52             while ((line = in.readLine()) != null) {
 53                 result += line;
 54             }
 55         } catch (Exception e) {
 56             System.out.println("发送GET请求出现异常!" + e);
 57             e.printStackTrace();
 58         }
 59         // 使用finally块来关闭输入流
 60         finally {
 61             try {
 62                 if (in != null) {
 63                     in.close();
 64                 }
 65             } catch (Exception e2) {
 66                 e2.printStackTrace();
 67             }
 68         }
 69         return result;
 70     }
 71
 72     /**
 73      * 向指定 URL 发送POST方法的请求
 74      *
 75      * @param url
 76      *            发送请求的 URL
 77      * @param param
 78      *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
 79      * @return 所代表远程资源的响应结果
 80      */
 81     public static String sendPost(String url, String param) {
 82         PrintWriter out = null;
 83         BufferedReader in = null;
 84         String result = "";
 85         try {
 86             URL realUrl = new URL(url);
 87             // 打开和URL之间的连接
 88             URLConnection conn = realUrl.openConnection();
 89             // 设置通用的请求属性
 90             conn.setRequestProperty("accept", "*/*");
 91             conn.setRequestProperty("connection", "Keep-Alive");
 92             conn.setRequestProperty("user-agent",
 93                     "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
 94             // 发送POST请求必须设置如下两行
 95             conn.setDoOutput(true);
 96             conn.setDoInput(true);
 97             // 获取URLConnection对象对应的输出流
 98             out = new PrintWriter(conn.getOutputStream());
 99             // 发送请求参数
100             out.print(param);
101             // flush输出流的缓冲
102             out.flush();
103             // 定义BufferedReader输入流来读取URL的响应
104             in = new BufferedReader(
105                     new InputStreamReader(conn.getInputStream()));
106             String line;
107             while ((line = in.readLine()) != null) {
108                 result += line;
109             }
110         } catch (Exception e) {
111             System.out.println("发送 POST 请求出现异常!"+e);
112             e.printStackTrace();
113         }
114         //使用finally块来关闭输出流、输入流
115         finally{
116             try{
117                 if(out!=null){
118                     out.close();
119                 }
120                 if(in!=null){
121                     in.close();
122                 }
123             }
124             catch(IOException ex){
125                 ex.printStackTrace();
126             }
127         }
128         return result;
129     }
130
131
132     public static void main(String[] args) {
133
134
135     }
136 }
137
138     
时间: 2024-10-26 15:46:40

java中原生的发送http请求(无任何的jar包导入)的相关文章

java 使用原生HttpURLConnection发送post请求

import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintStream; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; import java.text.SimpleDateFormat; import java.util.Cale

Hbase的极限测试经验之java项目的jar包导入

Hbase的极限测试的内容是把之前编过的网站的后台数据库改成hbase即可. 我很快就在hbase数据库中建完表,也把关于操作数据库的函数写好了. 当我调试时,发现在jsp中的操作数据库的函数都不能用. 提示我与没有找到与hbase的类,可是我当时已经通过Build Path的方式把与Hbase有关的所有jar包导入项目. 然后我在控制台测试这些函数,可以使用,没有报错,我就纳闷了. 我就一直卡到测试结束,一直没有解决. 等考试结束,我问了大佬,这种情况怎么解决. 他们告诉我Dynamic We

使用原生JavaScript发送ajax请求

关于使用原生JavaScript发送异步请求给服务端. 准备工作: 代码编写工具用的是sublime 服务端使用的是wamp搭的一个本地Apache服务器,主要用来返回数据 方便测试 步骤: 浏览器端 html标签绑定事件发送ajax请求----> 五步操作:1 创建异步对象XMLHttpRequest; 2 设置method url 3 发送请求给服务端 4 注册事件   5 在事件中获取服务端返回的数据,进行操作. 服务器端 1 获取请求数据 2 返回结果给浏览器 下面来一个小demo1做一

通过在jquery中添加函数发送ajax请求来加载数据库数据,以json的格式发送到页面

通过在jquery中添加函数发送ajax请求来加载数据库数据,以json的格式发送到页面 从数据库中查询仓库信息,显示在下拉菜单中: 首先,引入js插件,这里使用jquery-1.8.3.js <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.js"></script> 当页面加载完成后,就应该发送ajax请求到数据库,

vue中采用axios发送post请求

这几天在使用vue中axios发送get请求的时候很顺手,但是在发送post请求的时候老是在成功的回调函数里边返回参数不存在,当时就纳闷了,经过查阅资料,终于得到了解决方案,在此做一总结: 首先我们在运用npm install axios的时候就会默认安装qs,因此我们就得将qs引入到axios中,然后需要再通过实例化一个新的axios,并且设置他的消息头为'content-type': 'application/x-www-form-urlencoded' 1 let qs = require

.net core使用HttpClient发送代理请求_程序内抓包_Fiddler抓包

原文:.net core使用HttpClient发送代理请求_程序内抓包_Fiddler抓包 前言:  通过Fiddler抓取浏览器请求数据,相信大家已经都会用了,我们知道Fiddler是通过在本机计算器添加一个默认的代理服务器来实现的抓包数据的,端口号为:8888. 其实当我们打开Fiddler的设置也可以看到: 然后查看本地计算器的网络代理设置: 基于上面的原理,Fiddler就实现了经过本机计算器请求的数据抓包了... 那么,我们通过C#代码,在.net Core中使用HttpClient

Java类加载机制——如何实现一个工程中不同模块加载不同版本的同名jar包。

如何实现一个工程中不同模块加载不同版本的同名jar包? 曾是阿里面试的时候遇到的一个面试题.当时就有点晕,如果是平时遇到这样的问题肯定是统一加载相同版本的就好了. 而如果系统特别庞大依赖冲突繁多,涉及多部门协调,真的有必要解决这样的问题. 这个问题困扰我很久,一直没有好的解决办法.最近研究java虚拟机.终于找到了答案. 在JVM里由类名和类加载器区别不同的Java类型.因此,JVM允许我们使用不同的加载器加载相同namespace的java类,而实际上这些相同namespace的java类可以

Springboot中IDE支持两种打包方式,即jar包和war包

Springboot中IDE支持两种打包方式,即jar包和war包 打包之前修改pom.xml中的packaging节点,改为jar或者war    在项目的根目录执行maven 命令clean package -Dmaven.test.skip=true,即可打包,如下 命令执行成功后,在target目录下即可看到打包好的文件 提示:若打的包为jar包,可通过java -jar guns-xxx.jar来启动Guns系统 原文地址:https://www.cnblogs.com/mracale

使用原生ajax发送post请求完整案例

使用ajax发送数据实现前后台的交互,我想是web开发最基础的技能了.近来dz开发因为不兼容jquery,所以只能使用原生js发送数据,不想还遇到很多问题.在这里分析总结一下.先来一个使用ajax发送post表单数据的案例. <html> <head> <title> ajax发送post请求实例 </title> </head> <body> <form method="post" action="