1. 程式人生 > >Okhttp上傳和下載圖片

Okhttp上傳和下載圖片

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button xiazai;
private Button schuan;
private ImageView imgs;
private String xia=“https://10.url.cn/eth/ajNVdqHZLLAxibwnrOxXSzIxA76ichutwMCcOpA45xjiapneMZsib7eY4wUxF6XDmL2FmZEVYsf86iaw/”;
private String shang=“https://www.718shop.com/sell/sell.m.picture.upload.do
”;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
xiazai = (Button) findViewById(R.id.xiazai);
schuan = (Button) findViewById(R.id.schuan);
imgs = (ImageView) findViewById(R.id.imgs);
xiazai.setOnClickListener(this);
schuan.setOnClickListener(this);
}
@SuppressLint(“HandlerLeak”)
Handler handle=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 0:
byte[] byt = (byte[]) msg.obj;
Bitmap bitmap = BitmapFactory.decodeByteArray(byt, 0, byt.length);
imgs.setImageBitmap(bitmap);
break;
case 1:
Log.e(“lyq”,“下載失敗”);
break;
}
}
};
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.xiazai:
OkHttpClient okHttpClient=new OkHttpClient.Builder().build();
final Request request = new Request.Builder()
.url(xia)
.build();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
handle.sendEmptyMessageDelayed(1,0);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
byte[] bytes = response.body().bytes();
handle.sendMessage(handle.obtainMessage(0,bytes));
}
});
break;
case R.id.schuan:
OkHttpClient okHttpClient1=new OkHttpClient.Builder().build();
File file = new File(Environment.getExternalStorageDirectory() + “/0” ,“aa.jpg”);
RequestBody requestBody=RequestBody.create(MediaType.parse(“application/octet-stream”),file);
MultipartBody multipartBody=new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart(“image”,“aa.jpg”,requestBody)
.build();
Request build = new Request.Builder().url(shang).post(multipartBody).build();
okHttpClient1.newCall(build).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.e(“lyq失敗”,e+"");
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String stringx = response.body().string();
Log.e(“lyq”,stringx);
}
});
break;
}
}
}