代码改变世界

java GET请求与POST请求

2015-09-23 22:07  himanxu  阅读(210)  评论(0编辑  收藏  举报

http请求格式:

<request line>          //http请求行   refence:http://m.blog.csdn.net/blog/legend050709/39672551
<headers>               //http请求消息报头
<blank line>            //回车换行
[<request-body>]        //http请求正文

http响应格式

<status line>          //http响应状态行
<headers>             //http响应消息报头
<blank line>            //回车换行
[<response-body>]  //http响应正文

 

Get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址,用户看不到这个过程。所以POST 方法会比GET方法安全性更高

String url = "http://www.himanTech.com.cn/login";

String param = "name=himan&password=344354";

发送GET请求时,只需将请求参数放在URL字符串的后面,并以?隔开各参数间以&链接,键值对以=连接,程序直接调用URLConnection对象的connect()方法即可

URL url = new URL(url+"?"+param);

URLConnection conn = url.openConnection();

conn.setRequestProperty("","");

conn.connect();

 

发送POST请求是,需要先设置doIn和doOut两个请求字段的值,再使用URLConnection对应的输出流呀来发送请求参数

Url url = new URL(url);

URLconnection conn = url.openConnection();

conn.setRequestProperty("","');

conn.setDoInput(true);

conn.setDoOutput(true);

try(PrintWriter out = new PrintWriter(conn.getOutputStream()))

{

  out.print(param);  //发送请求

  out.flush();

}

 

获取响应

BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));

String line;

while ((line=br.readLine())!=null)

{

  response = "\n"+line;

}

 

//

Map<String, List<String>>map = conn.getHeaderFields();

for (String key:map.keySet())

{

  System.out.println(key+"--->"+map.getKey());

}