jdk发送get请求和post请求,分别带参数和不带参数两种形式

1、get方式(参数直接写在URL后面):

	/**
	 * jdk的get方式的请求发送
	 * 
	 * @throws Exception
	 */

	@Test
	public void RequestGet() throws Exception {
		// 获取我们的请求的url对象,需要传入请求的连接地址
		URL url = new URL("http://www.itcast.cn");
		// 通过调用openConnection 方法,获取网络连接
		URLConnection connection = url.openConnection();
		// 获取输入流,网页的所有内容都在这个输入流里面,将这个输入流转换成字符串就可以显示网页内容
		InputStream inputStream = connection.getInputStream();
		// 将输入流读到bufferedReader里面,然后就可以从bufferedReader里面获取字符串内容
		BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
		StringBuffer stringBuffer = new StringBuffer();
		String line = null;
		while ((line = bufferedReader.readLine()) != null) {

			stringBuffer.append(line);
			stringBuffer.append("\r\n");
		}
		System.out.println(stringBuffer.toString());
		// 关闭输入流
		inputStream.close();
	}

2、post方式(参数用代码方式实现)

@Test
	public void RequestPost() throws Exception {
		// 获取我们url的请求地址
		URL url = new URL("http://www.itcast.cn");
		// 通过我们的url去打开一个连接,请求网站
		// 记住,获取一个抽象类,只有两个方法,第一个,找子类,第二个,看这个抽象类有没有提供什么方法返回他自己的
		// 强制转换成HttpURLConnection就可以设置请求的方法了
		HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
		// 通过setRequestMethod设置请求的方法为post
		httpURLConnection.setRequestMethod("POST");
		/**
		 * post请求带参数开始
		 */
		// 允许我们的请求,可以携带输出流
		httpURLConnection.setDoOutput(true);
		// 通过输出流,来携带我们请求的参数
		OutputStream outputStream = httpURLConnection.getOutputStream();
		outputStream.write("username=zhangsan&password=list".getBytes());
		/**
		 * post请求带参数结束
		 */
		InputStream inputStream = httpURLConnection.getInputStream();
		// 将输入流读到bufferedReader里面,然后就可以从bufferedReader里面获取字符串内容
		BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
		StringBuffer stringBuffer = new StringBuffer();
		String line = null;
		while ((line = bufferedReader.readLine()) != null) {

			stringBuffer.append(line);
			stringBuffer.append("\r\n");
		}
		System.out.println(stringBuffer.toString());
	}

猜你喜欢

转载自blog.csdn.net/qicui2835/article/details/80944449