編輯:關於Android編程
一、首先下載Jar包
https://github.com/square/okhttp
如果使用android studio只需要加入依賴compile 'com.squareup.okhttp3:okhttp:3.2.0'
二、下載一張圖片並顯示
使用的是hanlder的方式
package com.liunan.okhttpdemo2;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
import java.io.IOException;
import java.io.InputStream;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;
public class MainActivity extends AppCompatActivity {
private static final int ERROR = 1;
private static final int SUCCESS = 2 ;
private String url = "http://192.168.1.102:8080/img/a.jpg";
private ImageView mIv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case SUCCESS:
mIv.setImageBitmap((Bitmap) msg.obj);
break;
case ERROR:
Toast.makeText(MainActivity.this, "請求超時", Toast.LENGTH_SHORT).show();
break;
}
}
};
/**
* 初始化 組件
*/
private void initView() {
mIv = (ImageView) findViewById(R.id.main_iv);
}
/**
* 點擊獲取圖片
*/
public void getPic(View v){
new Thread(){
@Override
public void run() {
//獲取okHttp對象get請求,
try {
OkHttpClient client = new OkHttpClient();
//獲取請求對象
Request request = new Request.Builder().url(url).build();
//獲取響應體
ResponseBody body = client.newCall(request).execute().body();
//獲取流
InputStream in = body.byteStream();
//轉化為bitmap
Bitmap bitmap = BitmapFactory.decodeStream(in);
//使用Hanlder發送消息
Message msg = Message.obtain();
msg.what = SUCCESS;
msg.obj = bitmap;
handler.sendMessage(msg);
} catch (IOException e) {
e.printStackTrace();
//失敗
Message msg = Message.obtain();
msg.what = ERROR;
handler.sendMessage(msg);
}
}
}.start();
}
}
也可以把網絡請求寫為一個工具類,
package com.liunan.okhttpdemo2;
import java.io.IOException;
import java.io.InputStream;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
/**
* Created by 劉楠 on 2016-03-27.
*/
public class OkHttpUtils {
OkHttpClient client = new OkHttpClient();
/**
* 獲取流
* @param url 請求地址
* @return 輸入流
*/
public InputStream getInpuStream(String url) throws IOException {
//設置 請求
Request request = new Request.Builder()
.url(url).build();
//獲取行響應
InputStream in = client.newCall(request).execute().body().byteStream();
return in;
}
/**
* 返回字符串
* @param url
* @return 返回字符串
* @throws IOException
*/
public String getString(String url) throws IOException {
//設置 請求
Request request = new Request.Builder()
.url(url).build();
//獲取行響應
Response response = client.newCall(request).execute();
return response.body().string();
}
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。
Android ORM框架之GreenDAO(一) 初識
做Android開發,避免不了要和SQLite打交道,如果不使用任何框架,直接使用它時,我們往往需要做許多額外的工作,像編寫 SQL 語句與解析查詢結果等,那麼是比較麻煩
Android Studio教程從入門到精通
本文目標在於指導新手,文章順序如下:Android Studio新手–>下載安裝配置–>零基礎入門–>基本使用&nd
Android中使用七牛雲存儲進行圖片上傳下載的實例代碼
Android開發中的圖片存儲本來就是比較耗時耗地的事情,而使用第三方的七牛雲,便可以很好的解決這些後顧之憂,最近我也是在學習七牛的SDK,將使用過程在這記錄下來,方便以
自定義控件 編輯和選取圓形頭像
android大家都有很多需要用戶上傳頭像的需求,有的是選方形,有的是圓角矩形,有的是圓形。首先我們要做一個處理圖片的自定義控件,把傳入的圖片,經過用戶選擇區域,處理成一