1、URLConnectionHelper
001 |
package com.hcm.rulconnetion.utils;
|
002 |
003 |
import java.io.BufferedReader;
|
004 |
import java.io.IOException;
|
005 |
import java.io.InputStreamReader;
|
006 |
import java.io.PrintWriter;
|
007 |
import java.net.URL;
|
008 |
import java.net.URLConnection;
|
009 |
import java.util.List;
|
010 |
import java.util.Map;
|
011 |
012 |
public class URLConnectionHelper {
|
013 |
014 |
/**
|
015 |
* 向指定URL发送GET方法的请求
|
016 |
*
|
017 |
* @param url
|
018 |
* 发送请求的URL
|
019 |
* @param params
|
020 |
* 请求参数,请求参数应该是name1=value1&name2=value2的形式。
|
021 |
* @return URL所代表远程资源的响应
|
022 |
*/
|
023 |
public static String sendGet(String url, String params) {
|
024 |
String result = "" ;
|
025 |
BufferedReader in = null ;
|
026 |
try {
|
027 |
String urlName = url + "?" + params;
|
028 |
URL realUrl = new URL(urlName);
|
029 |
// 打开和URL之间的连接
|
030 |
URLConnection conn = realUrl.openConnection();
|
031 |
// 设置通用的请求属性
|
032 |
conn.setRequestProperty( "accept" , "*/*" );
|
033 |
conn.setRequestProperty( "connection" , "Keep-Alive" );
|
034 |
conn.setRequestProperty( "user-agent" , "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" );
|
035 |
036 |
// 建立实际的连接
|
037 |
conn.connect();
|
038 |
// 获取所有响应头字段
|
039 |
040 |
Map<String, List<String>> map = conn.getHeaderFields();
|
041 |
// 遍历所有的响应头字段
|
042 |
for (String key : map.keySet()) {
|
043 |
System.out.println(key + "--->" + map.get(key));
|
044 |
}
|
045 |
046 |
// 定义BufferedReader输入流来读取URL的响应
|
047 |
in = new BufferedReader( new InputStreamReader(conn.getInputStream()));
|
048 |
String line;
|
049 |
while ((line = in.readLine()) != null ) {
|
050 |
result += "\n" + line;
|
051 |
}
|
052 |
} catch (Exception e) {
|
053 |
System.out.println( "发送GET请求出现异常!" + e);
|
054 |
e.printStackTrace();
|
055 |
}
|
056 |
// 使用finally块来关闭输入流
|
057 |
finally {
|
058 |
try {
|
059 |
if (in != null ) {
|
060 |
in.close();
|
061 |
}
|
062 |
} catch (IOException ex) {
|
063 |
ex.printStackTrace();
|
064 |
}
|
065 |
}
|
066 |
return result;
|
067 |
}
|
068 |
069 |
/**
|
070 |
* 向指定URL发送POST方法的请求
|
071 |
*
|
072 |
* @param url
|
073 |
* 发送请求的URL
|
074 |
* @param params
|
075 |
* 请求参数,请求参数应该是name1=value1&name2=value2的形式。
|
076 |
* @return URL所代表远程资源的响应
|
077 |
*/
|
078 |
public static String sendPost(String url, String params) {
|
079 |
PrintWriter out = null ;
|
080 |
BufferedReader in = null ;
|
081 |
String result = "" ;
|
082 |
try {
|
083 |
URL realUrl = new URL(url);
|
084 |
// 打开和URL之间的连接
|
085 |
URLConnection conn = realUrl.openConnection();
|
086 |
// 设置通用的请求属性
|
087 |
conn.setRequestProperty( "accept" , "*/*" );
|
088 |
conn.setRequestProperty( "connection" , "Keep-Alive" );
|
089 |
conn.setRequestProperty( "user-agent" , "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" );
|
090 |
091 |
// 发送POST请求必须设置如下两行
|
092 |
conn.setDoOutput( true );
|
093 |
conn.setDoInput( true );
|
094 |
// 获取URLConnection对象对应的输出流
|
095 |
out = new PrintWriter(conn.getOutputStream());
|
096 |
// 发送请求参数
|
097 |
out.print(params);
|
098 |
// flush输出流的缓冲
|
099 |
out.flush();
|
100 |
101 |
// 定义BufferedReader输入流来读取URL的响应
|
102 |
in = new BufferedReader( new InputStreamReader(conn.getInputStream()));
|
103 |
String line;
|
104 |
while ((line = in.readLine()) != null ) {
|
105 |
result += "\n" + line;
|
106 |
}
|
107 |
} catch (Exception e) {
|
108 |
System.out.println( "发送POST请求出现异常!" + e);
|
109 |
e.printStackTrace();
|
110 |
}
|
111 |
// 使用finally块来关闭输出流、输入流
|
112 |
finally {
|
113 |
try {
|
114 |
if (out != null ) {
|
115 |
out.close();
|
116 |
}
|
117 |
if (in != null ) {
|
118 |
in.close();
|
119 |
}
|
120 |
} catch (IOException ex) {
|
121 |
ex.printStackTrace();
|
122 |
}
|
123 |
}
|
124 |
return result;
|
125 |
}
|
126 |
} |
2、测试sendGet方法
1 |
@Test |
2 |
public void testSendGet<span></span>() {
|
3 |
String url = "http://127.0.0.1:8086/web_test/a.jsp" ;
|
4 |
String str = URLConnectionHelper.sendGet(url, null );
|
5 |
System.out.println(str);
|
6 |
} |
3、测试sendPost方法
1 |
@Test |
2 |
public void testSendPost() {
|
3 |
String url = "http://127.0.0.1:8086/web_test/UserLoginServlet" ;
|
4 |
String params = "username=admin&password=123456" ;
|
5 |
String str = URLConnectionHelper.sendPost(url, params);
|
6 |
System.out.println(str);
|
7 |
|
相关推荐
通过以上总结,你可以更好地理解如何使用Java URLConnection进行网络通信,包括发送GET和POST请求,以及处理登录和其他需要发送数据的情况。在实际项目中,结合具体的业务需求,这些知识将有助于实现高效且安全的...
`HttpURLConnection`是Java标准库提供的一种轻量级的HTTP客户端,它允许我们在后台代码中发送GET和POST请求。本篇文章将深入讲解如何使用`HttpURLConnection`类来模拟浏览器请求,并通过实例展示其在接口调用中的...
对于复杂的表单提交,可能需要使用`java.net.URLConnection`的`setDoOutput(true)`和`setDoInput(true)`方法,以及`java.io.OutputStreamWriter`来写入POST数据。 总的来说,Java模拟HTTP Get和Post请求涉及到网络...
下面将详细讲解如何使用Java实现HTTP GET和POST请求。 首先,我们来看GET请求。GET请求是HTTP协议中最简单的一种,它用于从服务器获取资源。在提供的代码片段中,`sendGet` 方法接收两个参数:`url` 和 `param`。`...
本实例将详细讲解如何使用`URLConnection`来发送POST或GET请求。 1. **初始化请求数据** 首先,我们需要准备请求的数据。在给定的代码示例中,数据被存储在一个`Map, String>`中,其中键是参数名,值是参数值。...
在Java编程语言中,我们可以使用多种方法来实现这一功能,其中URLConnection是Java标准库提供的一种网络通信接口,虽然HttpClient更为流行,但URLConnection在某些场景下依然具有实用性。下面我们将深入探讨...
在Android开发中,使用URLConnection提交网络请求是一种常见的做法,它提供了对HTTP协议的基本支持,包括GET和POST方式。以下是对这个知识点的详细说明: 首先,要实现一个网络请求,我们需要创建一个URL对象,该...
在Java编程中,HTTPURLConnection是Java标准库提供的一种用于处理HTTP连接的类,它允许我们发送HTTP请求并接收响应。然而,HTTP协议本身是无状态的,这意味着每次请求都是独立的,不会记住之前的交互,这对于需要...
在Java中,我们可以使用`java.net.URL`和`java.net.URLConnection`类来实现GET请求。以下是一个简单的示例,展示了如何使用GET方法下载服务器上的图片: ```java import java.io.InputStream; import java.net.URL;...
JAVA通过HttpURLConnection上传和下载文件的方法 JAVA通过HttpURLConnection上传和下载文件的方法是非常有实用价值的,需要的朋友可以参考下。HttpURLConnection是一个Java类,用于从网络中读取数据或向网络中写入...
在Java中,我们可以使用`java.net.URL`类来处理URL,以及`java.net.HttpURLConnection`或`java.net.URLConnection`类来发起HTTP请求。这些类允许我们连接到服务器,发送GET请求,接收响应,并读取返回的数据。 1. *...
3. **HTTP协议**:了解HTTP协议的基本原理,如GET和POST请求,HTTP头的设置等,这对于实现浏览器发送请求到服务器至关重要。 4. **IO流**:JAVA中的输入输出流(IO流)用于数据的读取和写入,如在接收服务器响应时...
它允许我们模拟浏览器行为,发送GET、POST等各种HTTP方法的请求。在图片爬虫中,我们通常使用GET请求获取网页内容。例如,你可以创建一个`CloseableHttpClient`实例,然后使用`HttpGet`构造请求URL,并通过`execute`...
了解HTTP请求方法(GET、POST)以及请求头和响应头的概念是必要的。Java的`HttpURLConnection` 类可以方便地发送HTTP请求。 3. **数据抓取**:雅虎财经的股票信息通常以HTML或JSON格式存在。我们可以使用`java.io....
下面的代码示例展示了如何使用Java的URLConnection类来发送GET请求到另一个项目的Controller: ```java package com.ultrapower.zq.iscloud.web.boc.api.utils; import java.io.BufferedReader; import java.io....
- **请求网页**:使用HttpClient发送GET或POST请求获取HTML源码。 - **HTML解析**:使用Jsoup或其他解析库解析HTML,找到图片链接。 - **下载图片**:根据图片链接,通过HttpClient或Java的URLConnection下载图片...
开发者需要理解HTTP的基本概念,如GET、POST请求方法,HTTP头和状态码。 5. **HTML解析**:加载的网页内容通常为HTML,开发者需要解析HTML文档以提取标题、链接、图片等信息。可以使用Java的DOM解析库,如`javax....
Java程序-网络浏览器是使用Java语言开发的一种应用程序,它的主要功能是模拟并实现网络浏览的功能。在Java中,实现这样的程序通常涉及到多个关键知识点,包括网络编程、HTTP协议理解、HTML解析以及用户界面设计等。 ...