POST REST 호출을 사용하여 OneDrive 폴더에 파일을 업로드하려고합니다. 내 응용 프로그램이 OneDrive와 통신 할 수 있습니다. 내가 말하는 응답은 The request entity body isn't a valid JSON object.
Onedrive API 파일 Java를 사용하여 업로드
입니다. 아래 코드는 제게 잘못되었거나 제 접근법을 알려주고 있습니다.
public static void onedriveFileUpload() {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost uploadFile = new HttpPost("https://apis.live.net/v5.0/folder.id");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
uploadFile.addHeader("Authorization", "Bearer access_token");
builder.addPart("file", new FileBody(new File("Test.txt"), ContentType.APPLICATION_OCTET_STREAM, "Test.txt"));
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
Charset chars = Charset.forName("utf-8");
builder.setCharset(chars);
uploadFile.setEntity(builder.build());
uploadFile.setHeader("Content-Type", "multipart/form-data");
uploadFile.setHeader("charset", "UTF-8");
uploadFile.setHeader("boundary", "AaB03x");
HttpResponse response = null;
try {
response = httpClient.execute(uploadFile);
HttpEntity responseEntity = response.getEntity();
String json = EntityUtils.toString(responseEntity);
System.out.println(json);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
다음은 OneDrive에서 얻은 Json 응답입니다.
{
"error": {
"code": "request_body_invalid",
"message": "The request entity body isn't a valid JSON object."
}
}
이와 같은 오류는 Fiddler (http://www.telerik.com/fiddler)에서 가장 잘 디버깅됩니다. 요청의 내용을 알지 못하면 전송 된 요청의 무엇이 잘못되었는지를 알 수 있습니다. –