1 . 上文说的是用get方式进行返回响应信息,现在来看一下用post方式怎么进行返回响应信息.
2 . 用post方式比较麻烦一点,因为在获取url的时候没有具体的参数值,需要额外的进行添加需要的一些name,pswd等参数值,是通过输出流进行写入的.在代码中注意一下是怎么写入的.
3 . 其实和get方式的代码就多在了怎么写入属性值上,其他基本类似.
4 . 时间有限,整理的不大自习,具体的方法还是要看具体的代码.
package com.qf.demo5;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
/**
* post请求方式,返回响应信息
* @author Administrator
*
*/
public class Test3 {
public static void main(String[] args) {
BufferedReader reader = null;
try {
URL url = new URL("http://localhost:8080/Day28_03/LoginServlet");
// 2
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 3
connection.setRequestMethod("POST");
// 是否允许修改 地址 (是否允许在地址中追加 参数)
connection.setDoOutput(true);// false 默认不允许修改
connection.setDoInput(true);// true 默认就是允许读取的 (修改以后要读取)
// 4 修改 追加 参数
OutputStream os = connection.getOutputStream();// 从这个流 向 conntion中取添加参数
os.write("useName=zhangasan&pwd=123".getBytes());
os.flush();
// 5 连接(可以写 可以不写 不写 默认帮助执行 连接操作)
//connection.connect();
// 6 读取响应内容
if(connection.getResponseCode()==200){
reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),"utf-8"));
String result = reader.readLine();
System.out.println("服务器回复的数据="+result);
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(reader!=null){
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}