服务端新建Json数据,HttpservletResponse是请求对象的返回,得到他的writer,把json转换成string就可以。写在doGet里。
代码:
-
res.setContentType("UTF-8");
-
PrintWriter pw = res.getWriter();
-
JSONObject json = new JSONObject();
-
json.put("name","fwz");
-
pw.write(json.toString());
客户端,使用HttpClient的execute的方法。用httpGet去执行。返回HttpResponse。再从response读取。
代码:
-
BufferedReader bufferedReader = null;
-
StringBuilder sb = new StringBuilder();
-
String s = "";
-
try {
-
HttpClient client = new DefaultHttpClient();
-
HttpResponse response = client.execute(new HttpGet(""));
-
HttpParams httpParams = client.getParams();
-
HttpConnectionParams.setConnectionTimeout(httpParams, 3000);
-
HttpConnectionParams.setSoTimeout(httpParams, 5000);
-
HttpEntity entity = response.getEntity();
-
if (entity!=null) {
-
bufferedReader = new BufferedReader(new InputStreamReader(entity.getContent(),"UTF-8"));
-
while((s=bufferedReader.readLine())!=null) {
-
sb.append(s);
-
}
-
}
-
nameTextView.setText(sb.toString());
-
} catch (Exception e) {
-
-
e.printStackTrace();
-
}
2,客户端到服务器端的传送
客户端,跟前面差不多,也是利用httpClient的execute方法,不过发送数据用Post。结合entity。
代码:
-
HttpClient client = new DefaultHttpClient();
-
HttpPost post = new HttpPost("");
-
JSONObject jsonObject = new JSONObject();
-
try {
-
jsonObject.put("name", "ze");
-
StringEntity entity = new StringEntity(jsonObject.toString());
-
post.setEntity(entity);
-
HttpResponse responString = client.execute(post);
-
} catch (JSONException e) {
-
-
e.printStackTrace();
-
} catch (UnsupportedEncodingException e) {
-
-
e.printStackTrace();
-
} catch (ClientProtocolException e) {
-
-
e.printStackTrace();
-
} catch (IOException e) {
-
-
e.printStackTrace();
-
}
服务端,只要写一个读取的方法就可以,在方法里处理HttpservletRequest的数据
代码: 这里只是输出
-
try {
-
BufferedInputStream in = new BufferedInputStream(req.getInputStream());
-
int i;
-
char c;
-
while ((i=in.read())!=-1) {
-
c=(char)i;
-
System.out.print(c);
-
}
-
System.out.println();
-
System.out.println("test");
-
}
-
catch (Exception ex) {
-
ex.printStackTrace();
-
}
转自http://yugouai.iteye.com/blog/1485473