韩国三级高清手机在线版-韩国三级电影久久-韩国三级hd中文字幕一男多女-韩国三级hd中文字幕久久精品-日本精品在线视频-日本精品在线观看视频

Android網絡連接之HttpURLConnection和HttpClient

1.概念      

      HTTP 協議可能是現在 Internet 上使用得最多、最重要的協議了,越來越多的 Java 應用程序需要直接通過 HTTP  協議來訪問網絡資源。在 JDK 的 java.net 包中已經提供了訪問 HTTP  協議的基本功能:HttpURLConnection。但是對于大部分應用程序來說,JDK 庫本身提供的功能還不夠豐富和靈活。

      除此之外,在Android中,androidSDK中集成了Apache的HttpClient模塊,用來提供高效的、最新的、功能豐富的支持 HTTP 協議工具包,并且它支持 HTTP 協議最新的版本和建議。使用HttpClient可以快速開發出功能強大的Http程序。

2.區別

HttpClient是個很不錯的開源框架,封裝了訪問http的請求頭,參數,內容體,響應等等,

HttpURLConnection是java的標準類,什么都沒封裝,用起來太原始,不方便,比如重訪問的自定義,以及一些高級功能等。

 

URLConnection

HTTPClient

Proxies and SOCKS

Full support in Netscape browser, appletviewer, and applications  (SOCKS: Version 4 only); no additional limitations from security  policies.

Full support (SOCKS: Version 4 and 5); limited in applets however by  security policies; in Netscape can't pick up the settings from the  browser.

Authorization

Full support for Basic Authorization in Netscape (can use info given  by the user for normal accesses outside of the applet); no support in  appletviewer or applications.

Full support everywhere; however cannot access previously given info  from Netscape, thereby possibly requesting the user to enter info (s)he  has already given for a previous access. Also, you can add/implement  additional authentication mechanisms yourself.

Methods

Only has GET and POST.

Has HEAD, GET, POST, PUT, DELETE, TRACE and OPTIONS, plus any arbitrary method.

Headers

Currently you can only set any request headers if you are doing a  POST under Netscape; for GETs and the JDK you can't set any headers. 
Under  Netscape 3.0 you can read headers only if the resource was returned  with a Content-length header; if no Content-length header was returned,  or under previous versions of Netscape, or using the JDK no headers can  be read.

Allows any arbitrary headers to be sent and received.

Automatic Redirection Handling

Yes.

Yes (as allowed by the HTTP/1.1 spec).

Persistent Connections

No support currently in JDK; under Netscape uses HTTP/1.0 Keep-Alive's.

Supports HTTP/1.0 Keep-Alive's and HTTP/1.1 persistence.

Pipelining of Requests

No.

Yes.

Can handle protocols other than HTTP

Theoretically; however only http is currently implemented.

No.

Can do HTTP over SSL (https)

Under Netscape, yes. Using Appletviewer or in an application, no.

No (not yet).

Source code available

No.

Yes.

3.案例

URLConnection

復制代碼

    String urlAddress = "http://192.168.1.102:8080/AndroidServer/login.do";  
    URL url;  
    HttpURLConnection uRLConnection;  
    public UrlConnectionToServer(){  
  
    }  

 

    //向服務器發送get請求
    public String doGet(String username,String password){  
        String getUrl = urlAddress + "?username="+username+"&password="+password;  
        try {  
            url = new URL(getUrl);  
            uRLConnection = (HttpURLConnection)url.openConnection();  
            InputStream is = uRLConnection.getInputStream();  
            BufferedReader br = new BufferedReader(new InputStreamReader(is));  
            String response = "";  
            String readLine = null;  
            while((readLine =br.readLine()) != null){  
                //response = br.readLine();  
                response = response + readLine;  
            }  
            is.close();  
            br.close();  
            uRLConnection.disconnect();  
            return response;  
        } catch (MalformedURLException e) {  
            e.printStackTrace();  
            return null;  
        } catch (IOException e) {  
            e.printStackTrace();  
            return null;  
        }  
    }  
      

 

    //向服務器發送post請求
    public String doPost(String username,String password){  
        try {  
            url = new URL(urlAddress);  
            uRLConnection = (HttpURLConnection)url.openConnection();  
            uRLConnection.setDoInput(true);  
            uRLConnection.setDoOutput(true);  
            uRLConnection.setRequestMethod("POST");  
            uRLConnection.setUseCaches(false);  
            uRLConnection.setInstanceFollowRedirects(false);  
            uRLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");  
            uRLConnection.connect();  
              
            DataOutputStream out = new DataOutputStream(uRLConnection.getOutputStream());  
            String content = "username="+username+"&password="+password;  
            out.writeBytes(content);  
            out.flush();  
            out.close();  
              
            InputStream is = uRLConnection.getInputStream();  
            BufferedReader br = new BufferedReader(new InputStreamReader(is));  
            String response = "";  
            String readLine = null;  
            while((readLine =br.readLine()) != null){  
                //response = br.readLine();  
                response = response + readLine;  
            }  
            is.close();  
            br.close();  
            uRLConnection.disconnect();  
            return response;  
        } catch (MalformedURLException e) {  
            e.printStackTrace();  
            return null;  
        } catch (IOException e) {  
            e.printStackTrace();  
            return null;  
        }  
    }  

復制代碼

HTTPClient

復制代碼

String urlAddress = "http://192.168.1.102:8080/qualityserver/login.do";  
public HttpClientServer(){  
          
 }  
      
public String doGet(String username,String password){  
    String getUrl = urlAddress + "?username="+username+"&password="+password;  
    HttpGet httpGet = new HttpGet(getUrl);  
    HttpParams hp = httpGet.getParams();  
    hp.getParameter("true");  
    //hp.  
    //httpGet.setp  
    HttpClient hc = new DefaultHttpClient();  
    try {  
        HttpResponse ht = hc.execute(httpGet);  
        if(ht.getStatusLine().getStatusCode() == HttpStatus.SC_OK){  
            HttpEntity he = ht.getEntity();  
            InputStream is = he.getContent();  
            BufferedReader br = new BufferedReader(new InputStreamReader(is));  
            String response = "";  
            String readLine = null;  
            while((readLine =br.readLine()) != null){  
                //response = br.readLine();  
                response = response + readLine;  
            }  
            is.close();  
            br.close();  
              
            //String str = EntityUtils.toString(he);  
            System.out.println("========="+response);  
            return response;  
        }else{  
            return "error";  
        }  
    } catch (ClientProtocolException e) {  
        // TODO Auto-generated catch block  
        e.printStackTrace();  
        return "exception";  
    } catch (IOException e) {  
        // TODO Auto-generated catch block  
        e.printStackTrace();  
        return "exception";  
    }      
}  
  
public String doPost(String username,String password){  
    //String getUrl = urlAddress + "?username="+username+"&password="+password;  
    HttpPost httpPost = new HttpPost(urlAddress);  
    List params = new ArrayList();  
    NameValuePair pair1 = new BasicNameValuePair("username", username);  
    NameValuePair pair2 = new BasicNameValuePair("password", password);  
    params.add(pair1);  
    params.add(pair2);  
      
    HttpEntity he;  
    try {  
        he = new UrlEncodedFormEntity(params, "gbk");  
        httpPost.setEntity(he);  
          
    } catch (UnsupportedEncodingException e1) {  
        // TODO Auto-generated catch block  
        e1.printStackTrace();  
    }   
      
    HttpClient hc = new DefaultHttpClient();  
    try {  
        HttpResponse ht = hc.execute(httpPost);  
        //連接成功  
        if(ht.getStatusLine().getStatusCode() == HttpStatus.SC_OK){  
            HttpEntity het = ht.getEntity();  
            InputStream is = het.getContent();  
            BufferedReader br = new BufferedReader(new InputStreamReader(is));  
            String response = "";  
            String readLine = null;  
            while((readLine =br.readLine()) != null){  
                //response = br.readLine();  
                response = response + readLine;  
            }  
            is.close();  
            br.close();  
              
            //String str = EntityUtils.toString(he);  
            System.out.println("=========&&"+response);  
            return response;  
        }else{  
            return "error";  
        }  
    } catch (ClientProtocolException e) {  
        // TODO Auto-generated catch block  
        e.printStackTrace();  
        return "exception";  
    } catch (IOException e) {  
        // TODO Auto-generated catch block  
        e.printStackTrace();  
        return "exception";  
    }     
}  

復制代碼

servlet端json轉化: 

復制代碼

        resp.setContentType("text/json");  
        resp.setCharacterEncoding("UTF-8");  
        toDo = new ToDo();  
        List<UserBean> list = new ArrayList<UserBean>();  
        list = toDo.queryUsers(mySession);  
        String body;  

        //設定JSON  
        JSONArray array = new JSONArray();  
        for(UserBean bean : list)  
        {  
            JSONObject obj = new JSONObject();  
            try  
            {  
                 obj.put("username", bean.getUserName());  
                 obj.put("password", bean.getPassWord());  
             }catch(Exception e){}  
             array.add(obj);  
        }  
        pw.write(array.toString());  
        System.out.println(array.toString());  

復制代碼

android端接收:

復制代碼

String urlAddress = "http://192.168.1.102:8080/qualityserver/result.do";  
        String body =   
            getContent(urlAddress);  
        JSONArray array = new JSONArray(body);            
        for(int i=0;i<array.length();i++)  
        {  
            obj = array.getJSONObject(i);  
            sb.append("用戶名:").append(obj.getString("username")).append("\t");  
            sb.append("密碼:").append(obj.getString("password")).append("\n");  
              
            HashMap<String, Object> map = new HashMap<String, Object>();  
            try {  
                userName = obj.getString("username");  
                passWord = obj.getString("password");  
            } catch (JSONException e) {  
                e.printStackTrace();  
            }  
            map.put("username", userName);  
            map.put("password", passWord);  
            listItem.add(map);  
              
        }  
          
        } catch (Exception e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
          
        if(sb!=null)  
        {  
            showResult.setText("用戶名和密碼信息:");  
            showResult.setTextSize(20);  
        } else  
            extracted();  
   
       //設置adapter   
        SimpleAdapter simple = new SimpleAdapter(this,listItem,  
                android.R.layout.simple_list_item_2,  
                new String[]{"username","password"},  
                new int[]{android.R.id.text1,android.R.id.text2});  
        listResult.setAdapter(simple);  
          
        listResult.setOnItemClickListener(new OnItemClickListener() {  
            @Override  
            public void onItemClick(AdapterView<?> parent, View view,  
                    int position, long id) {  
                int positionId = (int) (id+1);  
                Toast.makeText(MainActivity.this, "ID:"+positionId, Toast.LENGTH_LONG).show();  
              
            }  
        });  
    }  
    private void extracted() {  
        showResult.setText("沒有有效的數據!");  
    }  
    //和服務器連接  
    private String getContent(String url)throws Exception{  
        StringBuilder sb = new StringBuilder();  
        HttpClient client =new DefaultHttpClient();  
        HttpParams httpParams =client.getParams();  
          
        HttpConnectionParams.setConnectionTimeout(httpParams, 3000);  
        HttpConnectionParams.setSoTimeout(httpParams, 5000);  
        HttpResponse response = client.execute(new HttpGet(url));  
        HttpEntity entity =response.getEntity();  
          
        if(entity !=null){  
            BufferedReader reader = new BufferedReader(new InputStreamReader  
                    (entity.getContent(),"UTF-8"),8192);  
            String line =null;  
            while ((line= reader.readLine())!=null){  
                sb.append(line +"\n");  
            }  
            reader.close();  
        }  
        return sb.toString();  
    }  

 

穩定

產品高可用性高并發

貼心

項目群及時溝通

專業

產品經理1v1支持

快速

MVP模式小步快跑

承諾

我們選擇聲譽

堅持

10年專注高端品質開發
  • 返回頂部
国产福利精品一区二区| 内射爆草少妇精品视频| CHINESE粉嫩VIDEOS| 亚洲精品高清国产一久久| 视频在线一区二区| 欧美一区二期三区视频| 久久天天躁狠狠躁夜夜| 好大好深好猛好爽视频免费| 国产成人无码A区在线观看视频A| chinese老女人老熟妇hd| 伊人性伊人情综合网| 亚洲AV无码乱码在线观看代蜜桃 | 午夜在线观看的免费网站| 人人妻人人澡人人爽人人免费| 免费A级毛片18禁| 久久久久亚洲AV无码尤物黑人| 狠狠色丁香久久综合| 国产精品无码无片在线观看3D | 久久精品国产69国产精品亚洲| 国产日产欧产精品精乱了派| 丁香婷婷激情俺也去俺来也| 啊灬啊别停灬用力啊公视频| FREEXXX欧美老妇| 337P日本欧洲亚洲大胆69影| 在线 | 麻豆国产传媒| 亚洲中文无码永久在线电影| 亚洲乱码无人区卡1卡2卡3| 亚洲AV无码成人网站在线观看 | 亚洲AV无码AV日韩AV网站不| 无码天堂亚洲国产AV| 乌鸦传媒一二三区| 婷深夜综合成人AⅤ网站| 丝袜老师办公室里做好紧好爽| 日日天干夜夜狠狠爱| 色猫咪AV在线网址| 色噜噜综合亚洲AV中文无码| 色8久久人人97超碰香蕉987| 日韩免费视频一一二区| 日韩夜夜高潮夜夜爽无码| 日本熟妇人妻XXXXX视频| 日韩精品无码一区二区三区| 色婷婷狠狠久久综合五月| 日韩在线看片免费人成视频播放| 撒尿特写XXXⅩ| 双腿高潮抽搐喷白浆视频| 丝袜AV在线丝袜AV天堂| 无码人妻熟妇av又粗又大| 午夜麻豆国产精品无码| 性少妇VIDEOXXX欧美69| 亚洲AV永久无码精品主页| 亚洲成AV人片在线观看无APP| 亚洲国产综合无码一区| 亚洲中文字幕无码一区二区三区 | 余生请多指教在线观看免费全集 | 日本老熟妇ⅩXX| 人人妻人人爽人人澡人人| 日韩精品久久久肉伦网站| 色噜噜天堂AV崩坏星穹铁道| 无码人妻一区二区三区精品视频| 国产精品一国产精品| 国产精品久久久久久超碰| 国产精品不卡无码AV在线播放| 国产精品久久久久久久久KTV| 国产三级精品三级男人的天堂| 黑人又大又粗猛裂进出视频| 久久国产精品免费一区二区三区| 军人边走边吮她的花蒂| 欧美丰满少妇人妻精品| 日本在线人数最多的MMORPG| 少妇婬荡久久久久AV无码| 性XXXXX大片免费视频| 亚洲欧美日韩国产精品一区二区| 在线观看特色大片免费视频| YSL千人千色T9和T9的区别| 粗大黑人巨精大战欧美成人| 国产精品一国产精品| 精品无人区卡一卡二卡三乱码| 米奇影院888奇米色| 人与动人物XXXXAV片| 无码毛片内射白浆视频| 亚洲精品无码7777| 27报女上男下动态图GIF图| 粗了大了 整进去好爽视频| 国产亚洲精品精华液好用吗| 久久欧美极品少妇XXXXⅩ| 强制高潮18XXXXHD日韩| 无码免费大香伊蕉在人线国产| 亚洲内射夜夜嗨av| 99亚洲国产精品精华液| 国产AV剧情MD精品麻豆| 精品久久久久久无码专区不卡 | 欧美精品亚洲精品日韩传电影| 日韩AV影院在线观看| 性中国妓女毛茸茸视频| 又大又紧又粉嫩18P少妇| 博士用模型查出医院多收10万| 国产午夜精品理论片| 蜜桃无码一区二区三区| 少妇无码一区二区二三区| 亚洲欧美乱综合图片区小说区| CHINA中国人妻VIDEO| 国产精品一区在线观看你懂的| 久久亚洲精品无码| 少妇人妻大乳在线视频不卡| 亚洲精品无码AV中文字幕| 99热热久久这里只有精品68| 国产成人精品久久| 久久久久久久久久国产精品免费| 日本乱妇乱子视频网站-百度| 亚洲VA欧美VA天堂V国产综合| A级毛片在线观看| 国产在线精品一区二区三区| 女人自慰喷水全过程免费观看| 无码人妻精品一区二区蜜桃百度 | 男女性色大片免费网站| CHINAGARY武警体育飞机| 大量潮喷潮喷极限高H| 荒野大镖客暴躁老太太| 欧美性VIDEOS高清精品| 亚洲AV无码久久寂寞少妇| FREESEX性中国熟妇| 好爽好湿好硬好大免费视频| 欧美性操大鸡狠狠| 亚洲成国产人片在线观看| 被CAO的奶水直喷高H| 久久成人成狠狠爱综合网| 色窝窝AV资源网| 一本一本久久AA综合精品| 国产VIDEOSSEX精品| 末发育女AV片一区二区| 亚洲AⅤ天堂AV天堂无码麻豆| C她下嫩B视频内射国产| 韩国三级在线观看| 日本久久三级电影院| 伊人久久大香线蕉AV最新午夜| 国产精品18HDXXXⅩ| 欧美国产日本高清不卡| 亚洲男人第一AV天堂| 国产VIVODESHD精品| 欧美日韩国产精品| 亚洲乱码日产精品BD在线| 国产96色在线 | 国| 免费网站正能量WWW正能量| 亚洲AV无码成H人在线观看| 超清纯白嫩大学生无码网站| 亚洲精品日韩AV专区| 51精产国品一二三产区区别| 国产精品偷窥老熟女高潮| 欧美啪啪抽搐一进一出免费| 亚洲女同精品一区二区| 国99久9在线 | 免费| 欧美 亚洲 国产 另类| 亚洲AV永久青草无码精品| 老外免费CSGO交易网站有哪些| 无码无套少妇毛多18PX| YY6090青苹果影院| 久久久久久伊人高潮影院| 午夜宅男在线永久免费观看网| 成人A级毛片免费观看AV不卡| 久碰人澡人澡人澡人澡人视频| 午夜成人理论福利片| 村长你的机巴太粗太长了| 欧美黑人成人www在线观看| 亚洲午夜福利精品久久| 国产偷窥熟女高潮精品视频| 色老99久久精品偷偷鲁| AAA女人18毛片水真多| 久久精品一区二区三区AV| 西西人体大胆午夜啪啪| 东京热TOKYO综合久久精品| 欧美激情一区二区三区在线 | 亚州AV无码人妻一区二区三区| 德国FREE性VIDEO极品| 欧美黑人男士和白人美女a级黄片视频在线播放 | 色噜噜影院狠狠狠噜| DY888午夜福利视频| 男女爽爽午夜18禁影院免费| 一本一道人人妻人人妻| 激情内射亚洲一区二区三区爱妻| 乌克兰XXXXXLMEDJYF| 粉嫩性色av一区二区三区| 欧美成人在线最新| 中文字幕乱码人妻一区二区三区| 久久久久久久精品国产免费…| 亚洲乱码日产一区三区| 激情都市 校园 人妻 武侠| 亚洲AⅤ永久无码中文字幕| 国产精品自产Av一区二区三区| 天堂VA视频一区二区| 敌伦交换第11部分给了轨公领| 日本久久久WWW成人免费毛片丨| XXXX性XX另类Ⅹ中国HD| 欧洲S码亚洲M码精品一区| 99久久免费精品高清特色大片 | 亚洲色丰满少妇高潮| 精品久久久久久久中文字幕| 亚洲精品无码日韩国产不卡AV| 精品无码国产一区二区三区51安| 亚洲日韩国产一区二区蜜桃| 久久精品国产亚洲A∨麻豆|