`

HttpClient连接服务器(HttpPost)

    博客分类:
  • Java
 
阅读更多

首先,注意一点,连接服务器都不在主线程中进行,因为连接服务需要时间,这里简要介绍相关实现
public static HttpClient hc = null;
public static String server1 = "http://192.168.6.74:8080/testHttpClient2/first";
private class DownloadPass extends Thread{
    try {
        hc = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(server1);
        httppost.addHeader("Content-Type", "application/json");
        httppost.addHeader("User-Agent", "imgfornote");
        String model = android.os.Build.MODEL;
        SharedPreferences preference0 = getSharedPreferences("serialNo", MODE_PRIVATE);
        String serialNo = preference0.getString("serialNo", "0");
        JSONObject obj = new JSONObject();
        obj.put("serialNo", serialNo);
        httppost.setEntity(new StringEntity(obj.toString()));
        HttpResponse response;
        response = hc.execute(httppost);
        int code = response.getStatusLine().getStatusCode();
       if(code==200){
         str1 = EntityUtils.toString(response.getEntity());
      }
    
        if(str1!=null&&!str1.equals("")){
         obj = new JSONObject(str1);
         String url = obj.getString("url");
         String updated = obj.getString("updated");
         String serialNo1 = obj.getString("serialNo");
         Intent intent = new Intent(Loading.this,DownloadPassService.class);
         intent.putExtra("serialNo", serialNo1);
         intent.putExtra("url", url.trim());
         startService(intent);
        }else{
         SharedPreferences preference = getSharedPreferences("pass", MODE_PRIVATE);
         preference.edit().clear().putBoolean("pass", true).commit();
       }
   } catch(ClientProtocolException e){
    e.printStackTrace();
   } catch (IOException e) {
    mProgressHandler.sendEmptyMessage(20);
    e.printStackTrace();
   } catch (Exception e) {
    e.printStackTrace();
   } finally
   {
    //postMethod.releaseConnection();
    shutdownHttpClient();
   }

private void shutdownHttpClient() {
        if (hc != null && hc.getConnectionManager() != null) {
         hc.getConnectionManager().shutdown();
        }
 }
}

分享到:
评论

相关推荐

    httpclient

    3. 如果需要发送请求参数,可调用HttpGet、HttpPost共同的setParams(HetpParams params)方法来添加请求参数;对于HttpPost对象而言,也可调用setEntity(HttpEntity entity)方法来设置请求参数。 4. 调用...

    采用 HttpClient GET、POST 方式 提交数据到服务器

    采用 HttpClient GET、POST 方式 提交数据到服务器

    android Http Post 连接服务器超时Demo

    //设置连接超时 HttpParams httpParameters = new BasicHttpParams(); int timeoutConnection = 3000; HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection); ...

    httpclient-4.3.3.jar

    3. 如果需要发送请求参数,可调用HttpGet、HttpPost共同的setParams(HetpParams params)方法来添加请求参数;对于HttpPost对象而言,也可调用setEntity(HttpEntity entity)方法来设置请求参数。 4. 调用HttpClient...

    HttpClient以及获取页面内容应用

    CloseableHttpResponse response = httpclient.execute(httppost); try { HttpEntity entity = response.getEntity(); if (entity != null) { System.out.println("----------------------------...

    Android HttpClient GET或者POST请求基本使用方法

    在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient来方便我们使用各种Http服务.这里只介绍如何使用HttpClient发起GET或者POST请求

    Android登录注册(客户端)_cookieMonster

    这是一个Android Studio工程,包含登录和注册两个Activity,分别使用PostService类指定连接的Java Web服务器的Servlet,HttpClient类指定连接的服务器地址。详情可参考我的博客文章...

    Android开发资料合集--续

    24、httpget与post 38 Handler+Runnable模式 40 Handler+Thread+Message模式 42 Handler+ExecutorService(线程池)+MessageQueue模式 44 Handler+ExecutorService(线程池)+MessageQueue+缓存模式 45 25、Bitmap操作 ...

    OPhone应用开发权威指南(黄晓庆)

    9.1.2 HTTP连接过程 355 9.1.3 HTTP消息格式 355 9.2 线程管理 358 9.2.1 匿名Thread 358 9.2.2 java.util.concurrent框架 359 9.2.3 AsyncTask 369 9.3 网络编程接口 373 9.3.1 HttpClient API介绍 373 9.3.2 GET...

Global site tag (gtag.js) - Google Analytics