android經常使用的http請求

Handler handler = new Handler(new android.os.Handler.Callback() {
     @Override
      public boolean handleMessage(Message msg) {
          switch (msg.arg1) {
             case 1:  // 對獲取的數據進行操做android

                   break;
              case 2:  // 對獲取到數據進行操做網絡

                    break;
              default:app

                  break;
            }ide

          return false;
       }
 });oop

 

//聯網前,檢查網絡的操做在此省略不寫。post

 public void sendWebRequest() {
         new Thread(new Runnable() {
              @Override
               public void run() {
                     HttpURLConnection conn = null;
                      try {
                           URL url = new URL("www.baidu.com");
                           conn = (HttpURLConnection) url.openConnection();
                           conn.setRequestMethod("GET");// get請求方式:從服務端讀取數據ui

                         /*
                          * post:將數據提交到服務端。 注意點: 每條數據以鍵值對形式存在 數據間用 & 分隔
                          * conn.setRequestMethod("POST"); //post:將數據提交到服務端
                          * DataOutputStream dataoutputstream=new DataOutputStream( conn.getOutputStream() );
                          * dataoutputstream.writeBytes("username=haha&password=123456" );url

                          //每條數據以鍵值對形式存在,數據間用 & 分隔
                         */線程

                             conn.setConnectTimeout(8 * 1000);
                             conn.setReadTimeout(1000 * 8);
                             conn.connect();code

                             BufferedReader reader = new BufferedReader(
                                                      new InputStreamReader(conn.getInputStream()));
                             StringBuffer buffer = new StringBuffer(); // 用於存儲獲取到的數據
                             String line;
                             while ((line = reader.readLine()) != null) {
                                           buffer.append(line);
                              }
                             // 注意點: 子線程不能對UI控件操做,須要到主線程(即UI線程)才能操做ui控件
                            Looper.prepare();
                            Message message = handler.obtainMessage();
                            message.obj = buffer;
                            message.arg1 = 1;
                            handler.sendMessage(message);
                           Looper.loop();

                        } catch (Exception e) {
                              e.printStackTrace();
                       }

                       finally {
                               if (conn != null) {
                                   conn.disconnect();
                                }
                       }

             }
        }).start();

    }

   public void sendhttpconnet() {
           new Thread(new Runnable() {
                   public void run() {
                       try {
                            // HttpClient是一個接口,不能new 自己。 故new 一個默認的httpclient
                           HttpClient httpclient = (HttpClient) new DefaultHttpClient();
                           HttpGet get = new HttpGet("http://www.baidu.com");  // get請求
                           /*
                            * post 請求:提交數據到服務端,或者上傳文件到服務端 HttpPost post=new
                            * HttpPost("http://www.baidu.com"); List<NameValuePair>
                            * parameters=new ArrayList<NameValuePair>(); //用來存放數據
                            * parameters.add(new BasicNameValuePair("name", "admin"));
                            * parameters.add(new BasicNameValuePair("pwd", "123456"));
                            * UrlEncodedFormEntity entity1=new UrlEncodedFormEntity(parameters, "utf-8");
                            * post.setEntity(entity1);
                            */

                            HttpResponse respone = httpclient.execute(get);

                           // 判斷是否請求成功
                           if (respone.getStatusLine().getStatusCode() == 200) {
                                       HttpEntity entity = respone.getEntity();
                                       String s = EntityUtils.toString(entity, "utf-8"); // 轉換成 String 類型

                                       Looper.prepare();
                                       Message message = handler.obtainMessage();
                                       message.obj = s;
                                       message.arg1 = 2;
                                       handler.sendMessage(message);
                                       Looper.loop();

                           }
                       } catch (Exception e) {
                            e.printStackTrace();
                       }

                  }            }).start();   }

相關文章
相關標籤/搜索