上傳下載照片(OKhttp)
阿新 • • 發佈:2018-12-21
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button btn_up; private Button btn_drown; private ImageView img; private String path ="https://10.url.cn/eth/ajNVdqHZLLAxibwnrOxXSzIxA76ichutwMCcOpA45xjiapneMZsib7eY4wUxF6XDmL2FmZEVYsf86iaw/"; private String url ="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(); //設定點選事件 btn_drown.setOnClickListener(this); btn_up.setOnClickListener(this); } private void initView() { btn_up = findViewById(R.id.btn_up); btn_drown = findViewById(R.id.btn_drown); img = findViewById(R.id.img); }
//點選事件 @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn_up: // Log.i(“123”,“上傳照片”); File file = new File(Environment.getExternalStorageDirectory()+"/Download","/head.jpg"); // RequestBody body = RequestBody.create(MediaType.parse(“application/octet_stream”),file);
MultipartBody multipartBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart("image", "start.jpg", body) .build(); final Request request = new Request.Builder() .url(url) .post(multipartBody) .build(); new OkHttpClient.Builder() .writeTimeout(10, TimeUnit.SECONDS) .readTimeout(10, TimeUnit.SECONDS) .connectTimeout(10, TimeUnit.SECONDS) .build().newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { Log.e("123", "上傳成功"); } }); break; case R.id.btn_drown: // Log.i("123","下載照片"); //建立OKHttp物件 OkHttpClient okHttpClient = new OkHttpClient.Builder() .writeTimeout(10, TimeUnit.SECONDS) .readTimeout(10, TimeUnit.SECONDS) .connectTimeout(10, TimeUnit.SECONDS) .build(); //建立request物件 Request request1 = new Request.Builder() .url(path) .build(); //建立call物件 Call call = okHttpClient.newCall(request1); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { final byte[] pinture = response.body().bytes(); runOnUiThread(new Runnable() { @Override public void run() { Bitmap bitmap = BitmapFactory.decodeByteArray(pinture, 0, pinture.length); img.setImageBitmap(bitmap); } }); } }); break; } }
}