1、请求类例子
package com.until; 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; /** * 发送http请求的公共类 * @author Administrator */ public class HttpRequest { /** * 向指定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(); //设置通用的请求属性 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); //建立实际的连接 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; } } 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(); //设置通用的请求属性 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(param); //flush输出流的缓冲 out.flush(); //定义BufferedReader输入流来读取URL的响应,(处理乱码) in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8")); String line; while ((line = in.readLine()) != null) { result += 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、测试类例子
package com.test; import com.until.HttpRequest; public class HttpUtilTest { public static void main(String[] args) { //发送 GET 请求 // String s=HttpRequest.sendGet("http://localhost:6144/Home/RequestString", "key=123&v=456"); // System.out.println(s); //发送 POST 请求 String sr = HttpRequest.sendPost("http://php.weather.sina.com.cn/xml.php", "city=武汉&password=DJOYnieT8234jlsK&day=0"); System.out.println(sr); } }
相关推荐
GET请求通常用于获取数据,而POST请求用于提交数据。`HttpConnUtils.jar`是一个Java工具类库,它简化了通过URL执行这两种HTTP请求的过程,并允许传递参数。下面我们将详细探讨如何使用此类库以及相关的HTTP基础知识...
URLConnection对象提供了设置请求属性的方法,如设置请求方法(GET、POST等)、设置请求头(如User-Agent、Content-Type等)以及设置超时等。例如,要发送POST请求并设置Content-Type为application/json,可以这样做...
在给定的代码中,HttpRequestProxy类提供了一个静态方法doGet,该方法用于发送带参数的GET请求。该方法接受三个参数:reqUrl、parameters和recvEncoding。reqUrl是请求的URL,parameters是参数映射表,recvEncoding...
* 使用 HttpURLConnection 对象可以发送 GET 和 POST 请求。 * 使用 URLEncoder 对参数进行编码,避免了编码问题。 * 使用 Log4j 来记录日志,以便于调试和错误处理。 该技术的优点是: * 实现了 HTTP 请求代理,...
这意味着当Feign尝试发送包含POJO对象的GET请求时,由于存在请求体,`HttpURLConnection`将请求方法更改为POST,导致服务端处理失败。 #### 解决方案 为了解决上述问题,可以通过以下几种方式来处理: 1. **使用@...
**步骤3:发送GET请求** 对于GET请求,只需调用`connect()`方法建立连接即可。连接建立后,可以通过`InputStream`读取响应数据: ```java connection.connect(); InputStream inputStream = connection....
1. HttpURLConnection GET请求: GET请求是最基础的HTTP请求方法,常用于获取服务器上的资源。使用HttpURLConnection进行GET请求,主要步骤包括: - 创建URL对象并打开连接:`URL url = new URL(...
在Java中,我们可以使用`java.net.URL`和`java.net.URLConnection`类来实现GET请求。然而,这里没有给出GET请求的实现代码,通常做法是创建URL对象,打开连接,然后从`getInputStream()`中读取响应。 ### 2. POST...
在Java中,可以使用`java.net.URL`和`java.net.URLConnection`类来发送GET请求。以下是一个简单的示例: ```java URL url = new URL("http://example.com"); URLConnection connection = url.openConnection(); ...
GET请求通常用于获取资源,其参数包含在URL中,可见且有长度限制;而POST请求则用于向服务器发送数据,参数在请求体中,可以传输更多数据且相对隐蔽。 在Java中实现HTTPS网络请求,我们需要以下几个步骤: 1. **...
对于GET请求,通常不需要额外设置。对于POST请求,需要设置`setDoOutput(true)`来启用输出流,并设置请求头,如Content-Type: ```java HttpURLConnection httpURLConnection = (HttpURLConnection) connection; ...
1. **发送GET请求**: ```java public static String sendGet(String url, String param) { String result = ""; try { String urlName = url + "?" + param; URL u = new URL(urlName); URLConnection ...
需要注意的是,POST请求中的参数是以键值对的形式写入到输出流的,而GET请求则是附加到URL上。此外,POST请求可以传输大量数据,而GET请求由于URL长度限制,通常用于传递少量数据。 在实际应用中,你可能还需要处理...
3. **发送请求**:默认情况下,调用`connect()`方法时会发送GET请求。如果需要发送POST或其他类型的请求,需要先重写`doOutput`属性为`true`,然后通过`getOutputStream()`写入POST数据。 ```java urlConnection....
URL的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和URL之间的通信连接。程序可以通过URLConnection实例向该URL...程序Demo示范了如何向Web站点发送GET请求、POST请求,并从Web站点取得响应。
首先,让我们来看如何发送GET请求。GET请求主要用于获取资源,参数通常附加在URL后面。在给出的代码示例中,`sendGet` 方法接收两个参数:一个URL字符串和一个参数字符串。参数字符串应该按照`name1=value1&name2=...
对于GET请求,我们通过`sendGet`方法向指定URL发送请求。在这个方法中,首先将URL与参数拼接成标准的GET请求格式,如`http://example.com?name1=value1&name2=value2`。然后,通过`openConnection()`打开连接,并...