客户端:

public class HttpUtil {//创建HttpClient对象public static HttpClient httpClient = new DefaultHttpClient();public static final String BASE_URL="http://xxx.xxxx.xx.xx:8080/ticket/";//public static final String BASE_URL="http://xxx.xxxx.xx.xx:8080/apk/";//public static final String BASE_URL = "www.baidu.com";/** *  * @param url 发送请求的Url * @return 服务器响应的字符串 * @throws Exception  * @throws InterruptedException  */public static String getRequest(final String url) throws Exception {FutureTask<String> task = new FutureTask<String>(new Callable<String>() {@Overridepublic String call() throws Exception {//创建HttpGet对象HttpGet get = new HttpGet(url);//发送GET请求HttpResponse response = httpClient.execute(get);//若是服务器响应成功if(response.getStatusLine().getStatusCode() == 200) {//获取服务器响应的字符串String result = EntityUtils.toString(response.getEntity());return result;}return null;}});new Thread(task).start();return task.get();}/** *  * @param url 发送请求的url * @param rawParams 请求参数 * @return 响应的字符串 * @throws Exception */public static String postRequest(final String url,final Map<String,String> rawParams) throws Exception {//ExecutorService exec=Executors.newCachedThreadPool(); //FutureTask<String> task = new FutureTask<String>(//new Callable<String>() {//@Override//public String call() throws Exception {//创建HttpPost对象HttpPost post = new HttpPost(new URI(url));//对较多的传递参数进行封装、List<NameValuePair> params = new ArrayList<NameValuePair>();for(String key : rawParams.keySet()) {//封装请求参数params.add(new BasicNameValuePair(key, rawParams.get(key)));}//设置请求参数post.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));//发送post请求HttpResponse response = httpClient.execute(post);//若是服务器响应成功if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){//获取服务器响应的字符串  String result = EntityUtils.toString(response.getEntity(),HTTP.UTF_8);return result;}else{return "-1";}}//}//);//new Thread(task).start();//return task.get();//}}

注意:连接本地服务器时,最好使用ipv4地址而不是localhost。

服务端:

写一个servlet接收,判断客户端发送的是什么请求uri

public void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String uri = request.getRequestURI();uri = uri.substring(uri.lastIndexOf("/"));System.out.println("uri: " + uri);if("/hotStation.do".equals(uri)) {doHotStationList(request, response);}if("/stationList.do".equals(uri)) {doStationList(request, response);}}

如doHotStationList是这样写的:

public void doHotStationList(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=UTF-8");List<String> hotStationList = StationService.getHostStationList();JSONArray jsonArray = JSONArray.fromObject(hotStationList);System.out.println("传给客户端:" + jsonArray.toString());response.getWriter().println(jsonArray.toString());}

我这里数据交互使用的是json.

客户端获取服务端传递过来的json数据再解析成pojo对象即可。

更多相关文章

  1. Android中全局搜索(QuickSearchBox)详解
  2. Ubuntu Android编译服务器搭建
  3. Android(安卓)关键资源的定义和使用
  4. android studio使用volley发送post和get请求
  5. Android(安卓) 资源类型
  6. Android(安卓)下载文件 显示进度条
  7. Study:基于Selenium进行Android客户端自动化测试的例子。

随机推荐

  1. android进行录音功能并保存播放
  2. Android异步网络请求框架-Volley
  3. 浅谈android的selector,背景选择器
  4. Android(安卓)动画详解
  5. 【Android】从无到有:手把手一步步教你使
  6. Android(安卓)Binder简介
  7. Android中AppWidget加载流程(一)
  8. Android(安卓)之 ServiceManager与服务管
  9. [置顶] android 实现APK之间的跳转
  10. Android上传图片到服务器,android-async-h