5
我想POST(使用Java)多部分/混合請求,其中一部分是'application/json'類型,另一部分是'application/pdf'類型。有誰知道一個圖書館可以讓我輕鬆做到這一點?令人驚訝的是,我一直無法找到一個。在Java中生成混合/多部分HTTP請求
我將生成JSON,但我需要能夠將該部分的內容類型設置爲'application/json'。
非常感謝, 丹尼爾
我想POST(使用Java)多部分/混合請求,其中一部分是'application/json'類型,另一部分是'application/pdf'類型。有誰知道一個圖書館可以讓我輕鬆做到這一點?令人驚訝的是,我一直無法找到一個。在Java中生成混合/多部分HTTP請求
我將生成JSON,但我需要能夠將該部分的內容類型設置爲'application/json'。
非常感謝, 丹尼爾
簡單,使用Apache Http-client library(此代碼中使用版本4.1和罐子HttpClient的,的HttpCore和httpmime),這裏有一個例子:
package com.officedrop.uploader;
import java.io.File;
import java.net.URL;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.DefaultHttpClient;
public class SampleUploader {
public static void main(String[] args) throws Exception {
DefaultHttpClient httpclient = new DefaultHttpClient();
String basePath = "http://localhost/";
URL url = new URL(basePath);
HttpHost targetHost = new HttpHost(url.getHost(), url.getPort(), url.getProtocol());
HttpPost httpost = new HttpPost(String.format("%s%s", basePath, "ze/api/documents.xml"));
MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
entity.addPart("file_1", new FileBody(new File("path-to-file.pdf") , "file.pdf", "application/pdf", null));
entity.addPart("uploaded_data_1", new FileBody(new File("path-to-file.json") , "file.json", "application/json", null));
httpost.setEntity(entity);
HttpResponse response = httpclient.execute(targetHost, httpost);
}
}
嗨毛裏西奧,爲感謝建議。然而,請求是通過'multipart/form-data'內容類型而不是'multipart/mixed'生成的。我還沒有找到改變這種情況的方法,你知道嗎? – Daniel
爲什麼你需要它混合?任何具體原因?任何HTTP服務器/框架將能夠正確解碼這些文件。 –
我打電話的服務的文檔需要混合,但現在看起來文檔有誤。 :) 再次感謝! – Daniel