服务器端代码:
package com.wangjialin.internet.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/ServletForGETMethod")
public class ServletForGETMethod extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name= request.getParameter("name");
// String name= new String(request.getParameter("name").getBytes("ISO8859-1"),"UTF-8");
String age= request.getParameter("age");
System.out.println("name: " + name );
System.out.println("age: " + age );
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
同时服务器端也要在web.xml文件中配置一些文件:
要把以下代码加入到web.xml 文件中
<servlet>
<display-name>ServletForGETMethod</display-name>
<servlet-name>ServletForGETMethod</servlet-name>
<servlet-class>com.wangjialin.internet.servlet.ServletForGETMethod</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletForGETMethod</servlet-name>
<url-pattern>/ServletForGETMethod</url-pattern>
</servlet-mapping>
Android客户端的业务逻辑类是:
package com.wangjialin.internet.userInformation.service;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
public class UserInformationService {
public static boolean save(String title, String length) throws Exception{
String path = "http://192.168.1.100:8080/ServerForGETMethod/ServletForGETMethod";
Map<String, String> params = new HashMap<String, String>();
params.put("name", title);
params.put("age", length);
return sendGETRequest(path, params, "UTF-8");
}
/**
* 发送GET请求
* @param path 请求路径
* @param params 请求参数
* @return
*/
private static boolean sendGETRequest(String path, Map<String, String> params, String encoding) throws Exception{
// http://192.178.1.100:8080/ServerForGETMethod/ServletForGETMethod?title=xxxx&length=90
StringBuilder sb = new StringBuilder(path);
if(params!=null && !params.isEmpty()){
sb.append("?");
for(Map.Entry<String, String> entry : params.entrySet()){
sb.append(entry.getKey()).append("=");
sb.append(URLEncoder.encode(entry.getValue(), encoding));
sb.append("&");
}
sb.deleteCharAt(sb.length() - 1);
}
HttpURLConnection conn = (HttpURLConnection) new URL(sb.toString()).openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");
if(conn.getResponseCode() == 200){
return true;
}
return false;
}
}
同时Android客户端的代码也要在AndroidManifest.xml中配置一下:
要有访问网络的权限设置:
服务器端控制台上的数据可能出现乱码:
这个时候要修改一些:
要对获取的字符串加上一句:
String name= new String(request.getParameter(“name”).getBytes(“ISO8859-1”),”UTF-8”);
GET适用用数据量小于2KB并且安全性不是很高的情况下的适用!