Android OkHttp 结合php 多图片上传

来源:互联网 发布:淘宝优惠券生成器 编辑:程序博客网 时间:2024/06/02 00:51

今天写项目的时候需要多图片上传,就用okhttp简单写一个例子。


public class MainActivity extends AppCompatActivity {    private OkHttpClient client;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        client = new OkHttpClient();        postImage();    }    private  void postImage(){        //这里方便演示。读取drawable里的图片。        Bitmap bm = BitmapFactory.decodeResource(getResources(),R.drawable.demo);        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();        bm.compress(Bitmap.CompressFormat.JPEG,100,byteArrayOutputStream);        MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM)                .addFormDataPart("img_1","1.jpg", RequestBody.create(MediaType.parse("image/jpeg"),byteArrayOutputStream.toByteArray()))                .addFormDataPart("img_2","2.jpg", RequestBody.create(MediaType.parse("image/jpeg"),byteArrayOutputStream.toByteArray()))                ;        //有多个图片就用for循环添加即可        MultipartBody build = builder.build();        okhttp3.Request bi = new okhttp3.Request.Builder()                .url("后台地址")                 .post(build)                .build();        client.newCall(bi).enqueue(new Callback() {            @Override            public void onFailure(Call call, IOException e) {                Log.i("TAG", "onFailure: 失败");            }            @Override            public void onResponse(Call call, okhttp3.Response response) throws IOException {                Log.i("TAG", "onResponse: " + response.body().string());                //提交成功处理结果....            }        });    }}

配合php后台接收图片地址:http://blog.csdn.net/hobhunter/article/details/72629850