package com.example.myapplication5;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button button1;
private Button button2;
private ImageView image;
String Path = "https://10.url.cn/eth/ajNVdqHZLLAxibwnrOxXSzIxA76ichutwMCcOpA45xjiapneMZsib7eY4wUxF6XDmL2FmZEVYsf86iaw/";
private static final int SUCCESS = 993;
private static final int FALL = 814;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage( msg );
switch (msg.what) {
case SUCCESS:
byte[] picture =(byte[]) msg.obj;
Bitmap bitmap = BitmapFactory.decodeByteArray( picture, 0, picture.length );
image.setImageBitmap( bitmap );
break;
case FALL:
Toast.makeText( MainActivity.this, "不好意思,孙佳鑫丑的,造成网络异常", Toast.LENGTH_SHORT ).show();
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
initView();
}
private void initView() {
button1 = (Button) findViewById( R.id.button1 );
button2 = (Button) findViewById( R.id.button2 );
button1.setOnClickListener( this );
button2.setOnClickListener( this );
image = (ImageView) findViewById( R.id.image );
image.setOnClickListener( this );
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
String url = "https://www.718shop.com/sell/sell.m.picture.upload.do";
File file = new File( Environment.getExternalStorageDirectory(), "aa.png");
//创建RequestBody封装参数
RequestBody fileBody = RequestBody.create( MediaType.parse("application/octet-stream"), file);
//创建MultipartBody,给RequestBody进行设置
MultipartBody multipartBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("image", "aa.png", fileBody)
.build();
//创建Request
Request request = new Request.Builder()
.url(url)
.post(multipartBody)
.build();
//创建okhttp对象
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.build();
//上传完图片,得到服务器反馈数据
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.e("ycf", "uploadMultiFile() e=" + e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.i("ycf", "uploadMultiFile() response=" + response.body().string());
}
});
break;
case R.id.button2:
OkHttpClient okHttpClients = new OkHttpClient();
Request requests = new Request.Builder()
.url( Path )
.build();
Call call = okHttpClients.newCall( requests );
call.enqueue( new Callback() {
@Override
public void onFailure(Call call, IOException e) {
handler.sendEmptyMessage( FALL );
}
@Override
public void onResponse(Call call, Response response) throws IOException {
byte[] prcture = response.body().bytes();
Message message = handler.obtainMessage();
message.obj=prcture;
message.what=SUCCESS;
handler.sendMessage( message );
/* Message message = handler.obtainMessage();
message.obj = prcture;
message.what = SUCCESS;
handler.sendMessage( message );*/
}
} );
break;
}
}
}