Java GET和POST请求

从表面来看GET和POST请求:

GET请求是在url后直接附上请求体,url和请求体之间用"?"分割,不同参数之间用"&"分隔,%XX中的XX为该符号以16进制表示的ASCII,如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密。

POST把提交的数据则放置在是HTTP包的包体中,Post没有限制提交的数据。Post比Get安全,当数据是中文或者不敏感的数据,则用get,因为使用get,参数会显示在地址,对于敏感数据和不是中文字符的数据,则用post

Java中get请求:

package com.httpGetTest;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class HttpGetTest {

	public static void main(String[] args) {

		CreatHttpUrl creatUrl = new CreatHttpUrl();
	    String url = CreatHttpUrl.creatUrl("teacher", "en", "zh-CHS");
	    //System.out .print(url);

	   // new readByGet().start();
	    readData();
	}
	public static void readData()
	{
		try {
	    	CreatHttpUrl creatUrl = new CreatHttpUrl();
		    String urlStr = CreatHttpUrl.creatUrl("teacher", "en", "zh-CHS");
			URL url = new URL(urlStr);
			URLConnection connection = url.openConnection();
			InputStream is = connection.getInputStream();
			InputStreamReader isr = new InputStreamReader(is);
			BufferedReader bf = new BufferedReader(isr);

			String line;
			StringBuilder builder = new StringBuilder();
			while((line = bf.readLine()) != null)
			{
				builder.append(line);
			}

			bf.close();
			isr.close();
			is.close();

			System.out.println(builder);

	    } catch (Exception e) {
			e.printStackTrace();
		}

	}
}

Java中的post请求:

package com.httpPostTest;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class HttpPostTest {

	public static void main(String[] args) {

		CreatHttpUrl creatUrl = new CreatHttpUrl();
		String urlStr = "https://openapi.youdao.com/api";
		String paramStr = creatUrl.createParam("good","en","zh-CHS");

		System.out.println(paramStr);

		try {
			//设置请求相关设置
			URL url = new URL(urlStr);
			HttpURLConnection connection = (HttpURLConnection) url.openConnection();
			connection.setRequestProperty("encoding", "UTF-8");
			connection.setRequestMethod("POST");
			connection.setDoInput(true);
			connection.setDoOutput(true);

			//post提交数据
			OutputStream os = connection.getOutputStream();
			OutputStreamWriter osw = new OutputStreamWriter(os);
			BufferedWriter writer = new BufferedWriter(osw);

			writer.write(paramStr);
			writer.flush();

			//读取获取的数据
			InputStream is = connection.getInputStream();
			InputStreamReader isr = new InputStreamReader(is);
			BufferedReader br = new BufferedReader(isr);

			String line;
			StringBuilder builder = new StringBuilder();
			while((line = br.readLine()) != null)
			{
				builder.append(line);
			}

			writer.close();
			osw.close();
			os.close();
			br.close();
			isr.close();
			is.close();

			System.out.print(builder.toString());

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
时间: 2024-08-26 22:44:49

Java GET和POST请求的相关文章

简述Java中Http/Https请求监听方法

一.工欲善其事必先利其器 做Web开发的人总免不了与Http/Https请求打交道,很多时候我们都希望能够直观的的看到我们发送的请求参数和服务器返回的响应信息,这个时候就需要借助于某些工具啦.本文将采用Fiddler2作为分析工具,Fiddler很强大,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,是越墙抓包之利器.关于工具的介绍可以参考下面的链接: http://www.cnblogs.com/TankXiao/archive/2012/02

用java模拟发送post请求

package com.bytestream.practice.demo;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;

如何通过抓包工具fiddler获取java程序的http请求

原文:如何通过抓包工具fiddler获取java程序的http请求 源代码下载地址:http://www.zuidaima.com/share/1550463683824640.htm 抓包工具fidder是一个很轻巧的可以获取浏览器,程序的http,https请求的软件. 百科地址:http://baike.baidu.com/view/868685.htm 官网地址:http://fiddler2.com/ firefox的fidder插件 而java程序需要设置proxy才能生效: Pro

Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求

Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java 判断请求是不是ajax请求,Java判断是否为ajax请求 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright 蕃薯耀 2017年8月10日 http://www.cnblogs.com/

java httpclient发送json 请求 ,go服务端接收

/***java客户端发送http请求*/package com.xx.httptest; /** * Created by yq on 16/6/27. */ import java.io.IOException; import java.net.URLEncoder; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.GetMethod; import org.apache

JAVA模拟HTTP post请求上传文件

在开发中,我们使用的比较多的HTTP请求方式基本上就是GET.POST.其中GET用于从服务器获取数据,POST主要用于向服务器提交一些表单数据,例如文件上传等.而我们在使用HTTP请求时中遇到的比较麻烦的事情就是构造文件上传的HTTP报文格式,这个格式虽说也比较简单,但也比较容易出错.今天我们就一起来学习HTTP POST的报文格式以及通过Java来模拟文件上传的请求. 首先我们来看一个POST的报文请求,然后我们再来详细的分析它. POST报文格式 [plain] view plain co

java怎么发http请求

package wzh.Http; 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 H

Java中前台JSP请求Servlet实例(http+Servlet)

1.前台jsp代码 himily.jsp,定义了用户名和密码两个输入框,使用post方式提交:/order-web/HimilyServlet其中order-web为站点名称,HimilyServlet为servlet访问路径 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html

Java后台发送Post请求,数据传输格式JSON

代码如下: 1 package com.test; 2 3 import java.io.BufferedReader; 4 import java.io.InputStream; 5 import java.io.InputStreamReader; 6 7 import net.sf.json.JSONObject; 8 9 import org.apache.http.HttpResponse; 10 import org.apache.http.HttpStatus; 11 import