将 PDF 文件保存在本地驱动器 (D:) 中。需要借助 Rest API 和 Java 在 Egnyte 中上传这些 PDF 文件
问问题
477 次
1 回答
1
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.testng.Assert;
@SuppressWarnings("deprecation")
public class Postrequest {
public static void postRequest(String attachmentValue) throws Exception {
String attachment = "C:\\Users\\eclipse-workspace\\renamedfile\\"+attachmentValue;
String url = "https://domain.egnyte.com/pubapi/v1/fs-content/Shared/a/Sa/Upload/"+attachmentValue;
File inFile = new File(attachment);
FileInputStream fis = null;
FileBody data = new FileBody(inFile);
try {
fis = new FileInputStream(inFile);
HttpClient httpclient = HttpClientBuilder.create().build();
// server back-end URL
HttpPost httppost = new HttpPost(url);
httppost.addHeader("Authorization", "Bearer " + "*****");
httppost.addHeader("Content-Disposition", "form-data; name=\"file\"");
//httppost.addHeader("Content-type", "****");
httppost.addHeader("Content-type", "text/plain");
httppost.addHeader("Host", "domain.egnyte.com");
MultipartEntityBuilder entity = MultipartEntityBuilder.create();
entity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
entity.addPart("document", data);
HttpEntity httpEntity = entity.build();
httppost.setEntity(httpEntity);
// execute the request
HttpResponse response = httpclient.execute(httppost);
int statusCode = response.getStatusLine().getStatusCode();
Assert.assertEquals(statusCode, 200,"The Status code is not matched");
HttpEntity responseEntity = response.getEntity();
String responseString = EntityUtils.toString(responseEntity, "UTF-8");
System.out.println("[" + statusCode + "] " + responseString);
} catch (ClientProtocolException e) {
System.err.println("Unable to make connection");
} catch (IOException e) {
System.err.println("Unable to read file");
} finally {
try {
if (fis != null)
fis.close();
} catch (IOException e) {
}
}
};
于 2019-11-19T09:52:21.333 回答