Android中基於HTTP的網路技術

山有木xi發表於2020-03-18

Android中的網路技術是基於HTTP的訪問方法,類似QQ,微信,微博等等這些軟體,都使用了大量的通訊方法,這已經是Android應用必不可少的內容

WebView

這個控制元件可以在Android應用中替代瀏覽器來顯示網頁,具體使用方法如下

  • 獲取WebView物件

  • 獲取WebSettings物件

  • 啟用JavaScript

  • 將頁面WebView中

  • 載入網頁

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WebView webView= (WebView) findViewById(R.id.webView);
        WebSettings ws=webView.getSettings();
        ws.setJavaScriptEnabled(true);
        webView.setWebViewClient(new WebViewClient());
        webView.loadUrl(");
    }
}

HttpURLConection

WebView封裝了HTTP客戶端的所有操作,當需要直接獲得伺服器響應時,就可以使用HttpURLConection了

  • 呼叫openConnection方法獲得例項物件

  • 設定HTTP請求方式

  • 設定請求相關引數

  • 處理返回結果

 HttpURLConnection con=null;
        BufferedReader reader=null;
        try {
            URL url=new URL("http:);
            con=(HttpURLConnection)url.openConnection();
            con.setRequestMethod("GET");
            Log.e("doUrlGet: ",con.getContentLength()+"");
            if(true) return;
            InputStream in=con.getInputStream();
            reader =new BufferedReader(new InputStreamReader(in));
            StringBuilder result=new StringBuilder();
            String s;
            s=reader.readLine();
            while(s!=null){
                result.append(s);
                s=reader.readLine();
            }

OkHttp

 HttpURLConnection將伺服器響應結果封裝在InputStream中,需要透過程式碼將其讀取,而OkHttp相比之下就簡單許多

  • 獲得OkHttpClient物件

  • 透過Request.Builder建立物件

  • 呼叫execute方法執行請求

  • 獲得字串形式返回結果

OkHttpClient okClient=new OkHttpClient();
            Request.Builder builder=new Request.Builder();
            builder.url("http://);
            Request request=builder.build();
            Response response=okClient.newCall(request).execute();
            String result=response.body().string();


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2681196/,如需轉載,請註明出處,否則將追究法律責任。

相關文章