GET方式与POST方式的区别
1.GET方式是以实体的方式得到由请求URL所指向的资源信息,它向服务器提交的参数跟在请求URL后面。使用GET方式访问网络URL的长度是有限制的。HTTP协议规定GET请求方式请求URL的长度不超过4k,但IE浏览器GET方式请求URL的长度不能超过1k为了兼容,因此GET方式请求URL的长度要小于1k;
2.POST方式用来想目的服务器发出请求,要求它接受被附请求后的实体,它向服务器提交的参数在请求后的实体中,它提交的参数是浏览器通过流的方式直接写给服务器的。此外,POST方式对URL的长度是每有限制的。
GET方式提交数据
接下来通过一段示例代码演示使用HttpURLConnection的GET方式提交数据,具体代码如下所示:
//将用户名和密码拼装在指定资源路径后面,并给用户名和密码进行编码;
Srting path=http://192.168.1.100:8080/web/LoginServlet?username-="
+URLEncodeer.encode("zhangsan")
="&password="URlEcode.encode("123");
URL url=new URL(path);
HttpURLConnection conn=(HttpURLConnection)url.openConnetion();
conn.setConnectTimeout(5000);
int responseCode-conn.getResponseCode();
if(responseCode==200){
InputScream is=conn.getInputStream();
try{
}cath9){
//读取输入流量里面的信息,在这里就不做演示了
}
}
上述代码所演示的就是如何使用HttpURLConnectionGET方式提交数据到服务器。
POST方式提交数据:
使用POST方式请求网络,请求参数跟在请求实体中。用户不能在浏览器中看到向服务器提交的请求参数,因此POST方式比GET方式相对安全。接下里通过一段示例代码来演示如何使用HttpURLConnection的POST方式提交数据,具体代码如下所示:
//使用HttpURLConnection
String path=http://192.168.1.100:8080/web/LoginServlet;
URL url=new URL(path);
HttpURLConnection conn=(HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setRequestionMethod("POST");
//准备数据并给参数进行编码
String data ="username="+URLEncoder.encode("zhangsan")
+“password="+URLEncoder.encode("123")
//设置请求头——数据提交方式,这里是以form表单的形式提取
conn.setrequestProperty("Content-Type",
"application/x-www-form-urlencoded")
conn.setRequestProperty("Content-Length",data.length()+"");
//post方式实际上是浏览器你把数据写给服务器
conn.setDoOutput(true);
OutputStream os=conn.getOutputStream();
os.write(data.getBytes());
int code=conn.getResponseCode();
if(code=200){
InputStream is=conngetInputStram();
try{
//读取服务器返回的信息
}catch(){
}
}
从上述代码可以看出,使用HttpURLConnection的POST方式提交数据时,是以流的形式直接将参数写到服务器上的,需要设置数据的提交方式和数据的长度。