使用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);
}
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);
}
相关文章推荐
- 使用HttpURLConnection向服务器发送post和get请求
- IT忍者神龟之使用HttpURLConnection向服务器发送post和get请求
- 使用HttpURLConnection向服务器发送post和get请求
- 使用HttpURLConnection向服务器发送post和get请求(转)
- 使用HttpURLConnection向服务器发送post和get请求
- 使用HttpURLConnection向服务器发送post和get请求
- Http学习之使用HttpURLConnection发送post和get请求(1)
- 使用HttpURLConnection发送post和get请求
- 使用HttpURLConnection向服务器发送post请求
- Http学习之使用HttpURLConnection发送post和get请求
- Http学习之使用HttpURLConnection发送post和get请求 .
- URL和HttpURLConnection的使用(向服务器发送请求,然后返回struts版)
- Http学习之使用HttpURLConnection发送post和get请求
- Http学习之使用HttpURLConnection发送post和get请求 android
- Android使用HttpUrlConnection请求服务器发送数据详解
- Http学习之使用HttpURLConnection发送post和get请求(3)
- Android使用HttpUrlConnection请求服务器发送数据详解
- Http学习之使用HttpURLConnection发送post和get请求
- HttpURLConnection 向服务器发送post和get请求 并接收响应
- Android使用HttpUrlConnection请求服务器发送数据详解