Android 如何使用OkHttp3上传图像?

Android 如何使用OkHttp3上传图像?,android,Android,我在node.js中有一个图像上传web服务,运行良好,我可以通过邮递员上传图像,我尝试在android中拍照而不是上传,node.js总是回复 “未定义” 没有错误消息,只有服务器显示未定义 我使用的代码和邮递员给我的相同,但无法工作,请帮帮我,在上传时被卡住了两天 我的代码 imageUpload.setOnClickListener(new View.OnClickListener() { @Override public void onC

我在node.js中有一个图像上传web服务,运行良好,我可以通过邮递员上传图像,我尝试在android中拍照而不是上传,node.js总是回复

“未定义”

没有错误消息,只有服务器显示未定义

我使用的代码和邮递员给我的相同,但无法工作,请帮帮我,在上传时被卡住了两天

我的代码

 imageUpload.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Runnable r = new Runnable() {
                    @Override
                    public void run() {
                         final String boundary;
                        boundary = "===" + System.currentTimeMillis() + "===";
                        OkHttpClient client = new OkHttpClient();
                        File file = new File(imageLocation);
                        String fileName = file.getName();
                        MediaType mediaType = MediaType.parse("multipart/form-data; boundary=" + boundary);

                        RequestBody body = RequestBody.create(mediaType, boundary + "Content-Disposition: form-data; name=\\\"images\"; filename="+fileName+"\\\"\\r\\nContent-Type: image/jpeg\\\"\\r\\n\\r\\n\\r\\n" + boundary);

                        Request request = new Request.Builder()
                                .url("http://localhost:3000/upload")
                                .post(body)
                                .addHeader("content-type", "multipart/form-data; boundary="+boundary)
                                .addHeader("cache-control", "no-cache")
                                .build();
                        try {
                            Response response = client.newCall(request).execute();
                        }catch (IOException e){
                            e.printStackTrace();
                        }

                    }


                 };
邮递员代码

 OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("multipart/form-data; boundary=--   -011000010111000001101001");
RequestBody body = RequestBody.create(mediaType, "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images\";       filename=\"Costa Rican Frog.jpg\"\r\nContent-Type: image/jpeg\r\n\r\n\r\n-----011000010111000001101001--");
Request request = new Request.Builder()
.url("http://localhost:3000/upload")
.post(body)
.addHeader("content-type", "multipart/form-data; boundary=---011000010111000001101001")
.addHeader("cache-control", "no-cache")
.addHeader("postman-token", "e360f8ea-d179-fc78-6dff-c56791b7d9ba")
.build();

Response response = client.newCall(request).execute();

您可以查看此url,了解有关如何发布表单、添加图像等的不同示例。以下是我如何做到这一点的链接: