最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android Http協(xié)議訪(fǎng)問(wèn)網(wǎng)絡(luò)實(shí)例(3種)

 更新時(shí)間:2017年07月14日 09:25:40   作者:cifer_xiao  
本篇文章主要介紹了Android Http協(xié)議訪(fǎng)問(wèn)網(wǎng)絡(luò)實(shí)例(3種),具有一定的參考價(jià)值,有興趣的可以了解一下

之前關(guān)于Android Http協(xié)議訪(fǎng)問(wèn)網(wǎng)絡(luò)的一點(diǎn)分析,最近需要回顧,就順便發(fā)到隨筆上了

Android中http連接主要是為了獲取網(wǎng)絡(luò)數(shù)據(jù),目前了解的有3種方法:

  1. Httpconnection ——本人常用
  2. OKHTTP——看見(jiàn)過(guò)(需要在依賴(lài)中引入包)
  3. HttpClient——過(guò)氣的方法(棄用)

HTTPCONNECTION

由于網(wǎng)絡(luò)連接是耗時(shí)操作不能在UI線(xiàn)程操作,一般通過(guò)Handler獲取子線(xiàn)程中獲取的數(shù)據(jù)

Handler mhandler=new Handler(){
    @Override
    public void handleMessage(Message msg) {
      super.handleMessage(msg);
      //數(shù)據(jù)處理邏輯
    }
  };

如何在UI線(xiàn)程中調(diào)用Http方法類(lèi)(很久以前琢磨了很久):

new JsonText(mhandler);

返回的類(lèi)型都是String,這里直接寫(xiě)在一個(gè)類(lèi)里以后方便用

public class JsonTest {
  Handler handler;
  public JsonTest(Handler handler) {
    this.handler = handler;
    thread.start();
  }

  Thread thread=new Thread(new Runnable() {
    @Override
    public void run() {
      Message msg=new Message();
      try{
        InputStream in=null;
        HttpURLConnection connection=null;
        URL url=new URL("http://guolin.tech/api/china");
        connection=(HttpURLConnection)url.openConnection();
        connection.setRequestMethod("GET");//設(shè)置請(qǐng)求方式,可以不設(shè)置,默認(rèn)是GET
        connection.setConnectTimeout(5000);//設(shè)置請(qǐng)求超時(shí)時(shí)間
        in=connection.getInputStream();
        msg.arg1=0x01;
        msg.obj=in.toString();
        handler.sendMessage(msg);
      }catch (Exception e){
        e.printStackTrace();
        msg.arg1=0x02;
        handler.sendMessage(msg);
      }finally {
        connection.disconnect();
      }
    }
  });
}

代碼不復(fù)雜就不贅述了,接下來(lái)說(shuō)其他幾點(diǎn):

thread:

經(jīng)常聽(tīng)到有問(wèn)sleep()和wait()有什么區(qū)別。sleep()方法來(lái)自thread類(lèi)中,而wait()來(lái)自object類(lèi)中;其次,sleep()方法調(diào)用的時(shí)候不出讓系統(tǒng)資源,wait()讓出系統(tǒng)資源其他線(xiàn)程可以占用CPU;最后,sleep(milliseconds)需要指定一個(gè)睡眠時(shí)間,時(shí)間一到會(huì)自動(dòng)喚醒。

http(超文本傳輸協(xié)議) ,https(超文本傳輸協(xié)議安全版)

關(guān)于TCP/IP 和UPD:

TCP/IP比UDP穩(wěn)定,但是慢,因?yàn)樗腥挝帐謾C(jī)制

關(guān)于三次握手:

網(wǎng)上有很多解釋?zhuān)约簲⑹鼍褪侵鳈C(jī)先問(wèn)服務(wù)器,我可以發(fā)數(shù)據(jù)了嗎,服務(wù)器回答,可以了,主機(jī)在說(shuō),那我發(fā)了。具體的內(nèi)容以后在詳細(xì)理解,先上圖


OKHTTP

書(shū)上的描述是:出色的網(wǎng)絡(luò)通信庫(kù)可以用來(lái)代替Httpconnection。你說(shuō)出色我就用咯。

添加依賴(lài):

dependencies {
compile 'com.squareup.okhttp3:okhttp:3.4.1'
}

使用

OkHttpClient client =new OkHttpClient();
//創(chuàng)建實(shí)例
Request request =new Request.Builder().build();

通過(guò)url()訪(fǎng)問(wèn)網(wǎng)絡(luò):

Request request =new Request.Builder().url("www.baidu.com").build();

之后調(diào)用newCall()方法創(chuàng)建call對(duì)象,并調(diào)用excute()方法發(fā)送請(qǐng)求并獲取服務(wù)器數(shù)據(jù):

Response response=client.newCall(request).excute();
String str=response..body().toString();//得到值

說(shuō)一下上述兩個(gè)方法都只說(shuō)了get,沒(méi)有post(提交數(shù)據(jù)),原因是懶了,以后再說(shuō)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

格尔木市| 宜都市| 秦皇岛市| 武清区| 水城县| 仙游县| 安丘市| 新河县| 射洪县| 侯马市| 佛冈县| 鄂伦春自治旗| 定西市| 门头沟区| 崇左市| 巍山| 沙洋县| 清苑县| 九江市| 濮阳县| 永川市| 溧水县| 渑池县| 毕节市| 江口县| 青岛市| 金华市| 泰兴市| 万安县| 溧阳市| 镇安县| 潼南县| 通辽市| 常宁市| 偏关县| 天峨县| 岢岚县| 资中县| 徐水县| 定陶县| 聂荣县|