我正在尝试在Java中上传内容类型为Multipart/form-data
的文件。我收到了InputStream
格式的文件,因此我需要将此InputStream
内容上传到目标位置。
我使用带有Multipart/form data
参数的Postman成功上传了此文件。但我无法用Java做到这一点。我尝试使用OK HTTP。我不知道如何将文件内容放在表单数据中。如果我按原样使用下面的代码,则上传文件但数据为空。
我从Postman复制了这段代码:
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
RequestBody body = RequestBody.create(mediaType, "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"file\"; filename=\"Bot.txt\"\r\nContent-Type: text/plain\r\n\r\n\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--");
Request request = new Request.Builder()
.url("https://test.atlassian.net/rest/api/2/issue/JIR-1/attachments")
.post(body)
.addHeader("content-type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW")
.addHeader("authorization", "Basic abcdefg")
.addHeader("x-atlassian-token", "nocheck")
.addHeader("cache-control", "no-cache")
.addHeader("postman-token", "a039d7b4-6d95-98a7-d4ac-606606b9c121")
.build();
Response response = client.newCall(request).execute();