网络编程首先把清单文件中配上再说:
<uses-permission android:name="android.permission.INTERNET"/>
我先列出服务器端的部分代码:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
System.out.println("进入get方法");
String name = request.getParameter("name");
String age = request.getParameter("age");
System.out.println("name=" + name + ",age=" + age);
PrintWriter writer = response.getWriter();
writer.write("Get : name,age send 成功");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
System.out.println("进入post方法");
String name = request.getParameter("name");
String age = request.getParameter("age");
System.out.println("name=" + name + ",age=" + age);
PrintWriter writer = response.getWriter();
writer.write("Post : name,age send 成功");
}
这里讲的Http通信是用HttpURLConnection连接服务器
android端代码(get,post两种请求方式):
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
// String path = "http://192.168.0.167:8080/TestAndroid/testServlet";
String path = "http://192.168.1.100:8080/TestAndroid/testServlet?name=zhangsan&age=23";
try {
URL url = new URL(path);
HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
//设置参数
//post情况下需要设置DoOutput为true,默认为false
urlConn.setDoInput(true);//默认为true
urlConn.setDoOutput(true);
urlConn.setRequestMethod("GET");
// urlConn.setRequestMethod("POST");
// urlConn.setUseCaches(false);
//设置content-type
// urlConn.setRequestProperty("Content-type", "application/x-www-form-urlencoded");
urlConn.setConnectTimeout(3000);
urlConn.setReadTimeout(3000);
/*//获得输出流,便于向服务器发送信息
DataOutputStream dos = new DataOutputStream(urlConn.getOutputStream());
//往流里面写请求参数
//post请求
dos.writeBytes("name=" + URLEncoder.encode("zhangsan", "utf-8"));
dos.writeBytes("&age=" + URLEncoder.encode("23", "utf-8"));
dos.flush();
dos.close();
*/
//获得输入流,取数据
BufferedReader reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
String buffer = null;
StringBuffer sb = new StringBuffer();
while ((buffer = reader.readLine()) != null) {
sb.append(buffer);
}
reader.close();
urlConn.disconnect();
Log.e("服务器数据", sb.toString());
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();