`

URLConnection发送post和get请求

阅读更多

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);
	}
}

 

分享到:
评论

相关推荐

    java使用url发送post和get请求:HttpConnUtils.jar

    GET请求通常用于获取数据,而POST请求用于提交数据。`HttpConnUtils.jar`是一个Java工具类库,它简化了通过URL执行这两种HTTP请求的过程,并允许传递参数。下面我们将详细探讨如何使用此类库以及相关的HTTP基础知识...

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

    URLConnection对象提供了设置请求属性的方法,如设置请求方法(GET、POST等)、设置请求头(如User-Agent、Content-Type等)以及设置超时等。例如,要发送POST请求并设置Content-Type为application/json,可以这样做...

    java中用URLConnection_类post方式提交表单

    在给定的代码中,HttpRequestProxy类提供了一个静态方法doGet,该方法用于发送带参数的GET请求。该方法接受三个参数:reqUrl、parameters和recvEncoding。reqUrl是请求的URL,parameters是参数映射表,recvEncoding...

    java中用URLConnection类post方式提交表单.pdf

    * 使用 HttpURLConnection 对象可以发送 GET 和 POST 请求。 * 使用 URLEncoder 对参数进行编码,避免了编码问题。 * 使用 Log4j 来记录日志,以便于调试和错误处理。 该技术的优点是: * 实现了 HTTP 请求代理,...

    Feign发送Get请求时,采用POJO对象传递参数的最终解决方案.docx

    这意味着当Feign尝试发送包含POJO对象的GET请求时,由于存在请求体,`HttpURLConnection`将请求方法更改为POST,导致服务端处理失败。 #### 解决方案 为了解决上述问题,可以通过以下几种方式来处理: 1. **使用@...

    Android使用URLConnection提交请求的实现

    **步骤3:发送GET请求** 对于GET请求,只需调用`connect()`方法建立连接即可。连接建立后,可以通过`InputStream`读取响应数据: ```java connection.connect(); InputStream inputStream = connection....

    网络请求----HttpURLConnection的get,post和图片加载

    1. HttpURLConnection GET请求: GET请求是最基础的HTTP请求方法,常用于获取服务器上的资源。使用HttpURLConnection进行GET请求,主要步骤包括: - 创建URL对象并打开连接:`URL url = new URL(...

    http请求(get和post)的java实现

    在Java中,我们可以使用`java.net.URL`和`java.net.URLConnection`类来实现GET请求。然而,这里没有给出GET请求的实现代码,通常做法是创建URL对象,打开连接,然后从`getInputStream()`中读取响应。 ### 2. POST...

    Java实现HTTP(GET、POST)请求

    在Java中,可以使用`java.net.URL`和`java.net.URLConnection`类来发送GET请求。以下是一个简单的示例: ```java URL url = new URL("http://example.com"); URLConnection connection = url.openConnection(); ...

    https网络请求,包含get和post形式

    GET请求通常用于获取资源,其参数包含在URL中,可见且有长度限制;而POST请求则用于向服务器发送数据,参数在请求体中,可以传输更多数据且相对隐蔽。 在Java中实现HTTPS网络请求,我们需要以下几个步骤: 1. **...

    java如何利用java.net.URLConnection发送HTTP.docx

    对于GET请求,通常不需要额外设置。对于POST请求,需要设置`setDoOutput(true)`来启用输出流,并设置请求头,如Content-Type: ```java HttpURLConnection httpURLConnection = (HttpURLConnection) connection; ...

    Java如何实现URL带请求参数(get/post)及得到get和post请求url和参数列表的方法

    1. **发送GET请求**: ```java public static String sendGet(String url, String param) { String result = ""; try { String urlName = url + "?" + param; URL u = new URL(urlName); URLConnection ...

    java发送http的get、post请求实现代码

    需要注意的是,POST请求中的参数是以键值对的形式写入到输出流的,而GET请求则是附加到URL上。此外,POST请求可以传输大量数据,而GET请求由于URL长度限制,通常用于传递少量数据。 在实际应用中,你可能还需要处理...

    URL以及URLConnection的使用

    3. **发送请求**:默认情况下,调用`connect()`方法时会发送GET请求。如果需要发送POST或其他类型的请求,需要先重写`doOutput`属性为`true`,然后通过`getOutputStream()`写入POST数据。 ```java urlConnection....

    Android移动开发-使用URLConnection提交请求的实现

    URL的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和URL之间的通信连接。程序可以通过URLConnection实例向该URL...程序Demo示范了如何向Web站点发送GET请求、POST请求,并从Web站点取得响应。

    java网络编程中向指定URL发送GET POST请求示例

    首先,让我们来看如何发送GET请求。GET请求主要用于获取资源,参数通常附加在URL后面。在给出的代码示例中,`sendGet` 方法接收两个参数:一个URL字符串和一个参数字符串。参数字符串应该按照`name1=value1&name2=...

    Android发送GET与POST请求的DEMO详解

    对于GET请求,我们通过`sendGet`方法向指定URL发送请求。在这个方法中,首先将URL与参数拼接成标准的GET请求格式,如`http://example.com?name1=value1&name2=value2`。然后,通过`openConnection()`打开连接,并...

Global site tag (gtag.js) - Google Analytics