调用方式:
String para = "p1=参数1&p2=参数2"; String sr=HttpRequest.sendPost("http://localhost:8080/demo/getUser.json",para); System.out.println("sr:" + sr);
String para = "p1=参数1&p2=参数2"; String sr=HttpRequest.sendGet("http://localhost:8080/demo/getUser.json",para); System.out.println("sr:" + sr);
工具类:HttpRequest.java
import javax.servlet.http.Cookie; 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 HttpRequest { public static String sCookie = null; /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return URL 所代表远程资源的响应结果 */ public static String sendGet(String url, String param) { String result = ""; BufferedReader in = null; try { String urlNameString = url + "?" + param; URL realUrl = new URL(urlNameString); // 打开和URL之间的连接 URLConnection connection = realUrl.openConnection(); //设置cookie if(sCookie!=null && sCookie.length()>0){ connection.setRequestProperty("Cookie", sCookie); } // 设置通用的请求属性 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"); // 建立实际的连接 connection.connect(); // 获取所有响应头字段 Map<String, List<String>> map = connection.getHeaderFields(); // 遍历所有的响应头字段 for (String key : map.keySet()) { System.out.println(key + "--->" + map.get(key)); } // 定义 BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } //获取cookie String cookie = connection.getHeaderField("set-cookie"); if(cookie!=null && cookie.length()>0){ sCookie = cookie; } System.out.println("cookie::::::" + sCookie); } catch (Exception e) { System.out.println("发送GET请求出现异常!" + e); e.printStackTrace(); } // 使用finally块来关闭输入流 finally { try { if (in != null) { in.close(); } } catch (Exception e2) { e2.printStackTrace(); } } return result; } /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return 所代表远程资源的响应结果 */ public static String sendPost(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); //设置cookie if(sCookie!=null && sCookie.length()>0){ conn.setRequestProperty("Cookie", sCookie); } // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // 获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream()); // 发送请求参数 out.print(param); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } //获取cookie String cookie = conn.getHeaderField("set-cookie"); if(cookie!=null && cookie.length()>0){ sCookie = cookie; } System.out.println("cookie::::::" + sCookie); } 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; } }
相关推荐
通过以上步骤,你可以完成一个基本的基于`java.net.URL`和`URLConnection`的网络请求。在实际开发中,考虑到易用性、异常处理和重试机制,往往会选择使用更高级的HTTP客户端库,如Apache HttpClient或OkHttp,它们...
import java.net.URL; import java.nio.charset.StandardCharsets; public class URLConnectionDemo { public static void main(String[] args) throws IOException { URL url = new URL("http://example.com");...
首先,你需要创建一个`java.net.URL`对象,它代表了你要访问的网络资源的地址。例如: ```java URL url = new URL("http://example.com/api"); ``` 2. **打开连接**: 使用URL对象的`openConnection()`方法...
在示例代码中,我们使用HttpGet对象来发送POST请求,并指定请求的URL、请求头和请求体。 使用HttpClient发送POST请求可以帮助我们与HTTPS服务器进行交互,但需要注意证书验证过程。使用X509TrustManager可以忽略...
在Java编程中,Apache HttpClient库是一个非常重要的工具,它提供了丰富的功能来执行HTTP请求,包括GET、POST等方法。这个库使得开发者能够方便地与Web服务器进行交互,处理各种HTTP协议相关的任务。在标题和描述中...
在Java中,我们通常使用`java.net.URL`和`java.net.HttpURLConnection`来发送GET请求。以下是一个简单的示例: ```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net....
首先,我们需要创建一个`java.net.URL`对象,该对象代表要访问的资源的统一资源定位符。例如: ```java URL url = new URL("http://example.com"); ``` 2. **建立连接**: 然后,使用URL对象创建一个`...
在Java编程中,`java.net.HttpURLConnection`是用于处理HTTP协议的基本类,它提供了一种与HTTP服务器通信的简单方式。下面将详细讲解如何使用`HttpURLConnection`进行网页内容获取、Cookie管理以及POST方式的数据...
本文将详细讲解如何使用Java发送GET和POST请求,以及涉及的HTTPS安全连接。 首先,理解HTTP和HTTPS的区别至关重要。HTTP(超文本传输协议)是一种用于分发超媒体信息的应用层协议,而HTTPS(超文本传输安全协议)是...
这里我们将介绍如何使用这两个类以及`java.io`包中的相关类来构建GET和POST请求。 1. **发送GET请求**: GET请求通常用于获取资源,参数包含在URL中。以下是一个简单的示例: ```java import java.io....
3. **发送HTTPS请求**:现在你可以使用HttpClient发送GET或POST请求了: ```java HttpGet request = new HttpGet("https://your.server.com/path"); HttpResponse response = httpClient.execute(request); int ...
这里我们将深入探讨如何使用Java发送GET和POST请求,以及处理JSON数据。 首先,让我们关注GET请求。GET请求主要用于从服务器获取资源,其参数通常包含在URL中。在Java中,可以使用`HttpURLConnection`类或者第三方...
- 在`HttpConnUtils`中,可能有一个`sendGetRequest()`方法,接受URL和参数,将参数编码并添加到URL路径,然后使用`java.net.HttpURLConnection`或`java.net.URLConnection`来建立连接并读取响应。 2. **HTTP POST...
这两个例子展示了如何使用Java内置的HttpURLConnection类发送GET和POST请求。然而,对于更复杂的场景,如管理cookies、重定向、超时控制等,使用Apache HttpClient或OkHttp等第三方库可能会更方便和强大。 在实际...
7. **实体处理**:对于POST请求,你可以使用`HttpEntityEnclosingRequestBase`子类(如`HttpPost`)来携带请求实体。对于响应实体,`EntityUtils`类提供了一些方便的方法,如`toString()`用于将响应体转化为字符串。...
本篇文章将详细介绍如何在Java中实现GET和POST请求,以及相关的知识点。 首先,我们要了解GET和POST的区别。GET请求通常用于获取资源,其参数附加在URL后面,是可见的,且对数据长度有限制,一般不超过2KB。而POST...
在Java中,可以使用`java.net.URL`和`java.net.URLConnection`类来发送GET请求。以下是一个简单的示例: ```java URL url = new URL("http://example.com"); URLConnection connection = url.openConnection(); ...
Java代码中,可以使用`java.net.URL`和`java.net.HttpURLConnection`类实现: ```java URL url = new URL("http://example.com/api" + "?param1=" + value1 + "¶m2=" + value2); HttpURLConnection ...
在Java中,我们可以使用`java.net.URL`和`java.net.HttpURLConnection`类来发送GET请求。首先创建URL对象,然后通过openConnection()方法获取HttpURLConnection实例,设置请求方法为GET,并通过connect()方法建立...