post请求跟get请求的区别
- 一 ☆☆☆☆☆☆☆和get方式提交数据 区别 路径不同
String path = "http://192.168.11.73:8080/login/LoginServlet";
- 二 ☆☆☆☆☆☆☆和get方式提交数据 区别 设置请求方式是post
conn.setRequestMethod("POST");
- 三 ☆☆☆☆☆☆☆和get方式提交数据 区别 要多设置2个请求头信息
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", data.length()+"");
- 四 ☆☆☆☆☆☆☆ 把我们组拼好的数据提交给服务器 以流的形式提交
conn.setDoOutput(true);// 设置一个标记 允许输出
conn.getOutputStream().write(data.getBytes());
URLConnection以post方式提交数据时程序代码:
// [1]点击按钮 进行post方式提交数据
public void click2(View v) {
new Thread(){public void run() {
try {
//[2]获取用户名和密码
String name = et_username.getText().toString().trim();
String pwd = et_password.getText().toString().trim();
//[2.1]定义get方式要提交的路径
String data = "username="+URLEncoder.encode(name, "utf-8")+"&password="+URLEncoder.encode(pwd,"utf-8")+""; //请求体的内容
// 一 ☆☆☆☆☆☆☆和get方式提交数据 区别 路径不同
String path = "http://192.168.11.73:8080/login/LoginServlet";
//(1) 创建一个url对象 参数就是网址
URL url = new URL(path);
//(2)获取HttpURLConnection 链接对象
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//(3)设置参数 发送get请求
//二 ☆☆☆☆☆☆☆和get方式提交数据 区别 设置请求方式是post
conn.setRequestMethod("POST"); //默认请求 就是get 要大写
//(4)设置链接网络的超时时间
conn.setConnectTimeout(5000);
//三 ☆☆☆☆☆☆☆和get方式提交数据 区别 要多设置2个请求头信息
//设置头信息
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", data.length()+"");
//四 ☆☆☆☆☆☆☆ 把我们组拼好的数据提交给服务器 以流的形式提交
conn.setDoOutput(true);// 设置一个标记 允许输出
conn.getOutputStream().write(data.getBytes());
//(5)获取服务器返回的状态码
int code = conn.getResponseCode(); //200 代表获取服务器资源全部成功 206请求部分资源
if (code == 200) {
//(6)获取服务器返回的数据 以流的形式返回
InputStream inputStream = conn.getInputStream();
//(6.1)把inputstream 转换成 string
String content = StreamTools.readStream(inputStream);
//(7)把服务器返回的数据展示到Toast上 不能在子线程展示toast
showToast(content);
}
} catch (Exception e) {
e.printStackTrace();
}
};}.start();
}
网友评论