您的位置:首页 > 理论基础 > 计算机网络

使用HttpURLConnection向服务器发送get请求

2016-09-08 00:00 721 查看
客户端代码示例:

public static void main(String[] args) {
String urlPath = "http://localhost:8080/web1/servletTestCallBack.hts";
try {
String param = "name=" + URLEncoder.encode("测试","UTF-8");
//建立连接
URL url = new URL(urlPath + "?" + param);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
httpConn.setDoOutput(true); // 需要输出
httpConn.setDoInput(true); // 需要输入
httpConn.setUseCaches(false); // 不允许缓存
httpConn.setRequestMethod("GET"); //设置GET方式连接
//设置请求属性
httpConn.setRequestProperty("Content-Type", "text/plain"); //表单提交 "application/x-www-form-urlencoded"
httpConn.setRequestProperty("Connection", "Keep-Alive"); // 维持长连接
httpConn.setRequestProperty("Charset", "UTF-8"); // 字符编码
httpConn.setConnectTimeout(5*1000); // 设置连接服务器超时时间
httpConn.setReadTimeout(5*1000); // 设置从主机读取数据超时(单位:毫秒)
httpConn.connect(); //连接

//获得响应状态
int resultCode = httpConn.getResponseCode();
if(HttpURLConnection.HTTP_OK == resultCode){
StringBuffer sb = new StringBuffer();
String readLine = new String();
BufferedReader responseReader = new BufferedReader(new InputStreamReader(httpConn.getInputStream(),"UTF-8"));
while((readLine = responseReader.readLine())!=null){
sb.append(readLine).append("\n");
}
responseReader.close();
System.out.println("响应数据:"+sb.toString());
}

} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}

服务器端代码示例:

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");
//得到客户端发送过来内容的类型
System.out.println("客户端发送过来内容的类型:" + request.getContentType());
String name = request.getParameter("name");

//获取request对象以ISO8859-1字符编码接收到的原始数据的字节数组,然后通过字节数组以指定的编码构建字符串,解决乱码问题。
name = new String(name.getBytes("ISO8859-1"),"UTF-8");

System.out.println("客户端传递的参数name:" + name);

//响应客户端
response.setCharacterEncoding("UTF-8");
response.getWriter().print("接受到信息,ok!");
}

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: