http multipart java_Http MultiPart请求
我正在嘗試使用httpClient庫上傳圖像(多部分/表單數(shù)據(jù)) . 我可以使用httpPost方法和byteArrayRequestEntity上傳圖像 . 以下是我使用的代碼:
File file = new File(imageFilePath);
HttpClient client = new HttpClient();
PostMethod method = new PostMethod("https://domain/link/folderId/files?access_token="+accessToken);
method.addRequestHeader("Content-Type","multipart/form-data;boundary=AaB03x");
String boundary = "AaB03x";
StringBuilder builder = new StringBuilder();
builder.append("--");
builder.append(boundary+"\r\n");
builder.append("Content-Disposition: form-data; name=\"file\"; filename=\"photo.jpg\"");
builder.append("\r\n");
builder.append("Content-Type: image/jpeg");
builder.append("\r\n");
builder.append("\r\n");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write(builder.toString().getBytes("utf-8"));
builder.setLength(0);
InputStream is = new FileInputStream(file);
byte[] buffer = new byte[4096];
int nbRead = is.read(buffer);
while(nbRead > 0) {
baos.write(buffer, 0, nbRead);
nbRead = is.read(buffer);
}
is.close();
builder.append("\r\n");
builder.append("--");
builder.append(boundary);
builder.append("--");
builder.append("\r\n");
baos.write(builder.toString().getBytes("utf-8"));
method.setRequestEntity(new ByteArrayRequestEntity(baos.toByteArray(), "multipart/form-data; boundary=\"" + boundary + "\""));
System.out.println(method.getRequestEntity().toString());
client.executeMethod(method);
但我正在研究的項目要求我使用httpRequest而不是Http PostMethod . 我嘗試使用basicHttpEntityEnclosingRequest,但同樣的setEntity方法只接受一個httpEntity(我使用的是ByteArrayRequestEntity) .
任何人都可以幫我修改代碼,以便它使用HttpRequest(或其子類型)而不是PostMethod?
總結(jié)
以上是生活随笔為你收集整理的http multipart java_Http MultiPart请求的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 炖冬瓜的家常做法?
- 下一篇: 买回来的榴莲可以放冰箱保存吗?