Android 如何使用OkHttp3上传图像?
我在node.js中有一个图像上传web服务,运行良好,我可以通过邮递员上传图像,我尝试在android中拍照而不是上传,node.js总是回复 “未定义” 没有错误消息,只有服务器显示未定义 我使用的代码和邮递员给我的相同,但无法工作,请帮帮我,在上传时被卡住了两天 我的代码Android 如何使用OkHttp3上传图像?,android,Android,我在node.js中有一个图像上传web服务,运行良好,我可以通过邮递员上传图像,我尝试在android中拍照而不是上传,node.js总是回复 “未定义” 没有错误消息,只有服务器显示未定义 我使用的代码和邮递员给我的相同,但无法工作,请帮帮我,在上传时被卡住了两天 我的代码 imageUpload.setOnClickListener(new View.OnClickListener() { @Override public void onC
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,了解有关如何发布表单、添加图像等的不同示例。以下是我如何做到这一点的链接: