2017-11-22 2 views
0

api를 사용하여 ReviewBoard에 대한 검토 요청을 만들었으나이 검토 요청에 diff 파일을 추가 할 수 없습니다. ReviewBoard API에 POST 요청을 전송하는API를 사용하여 ReviewBoard에 diff를 업로드하려고 할 때 400-BAD 요청 받기

나는 ReviewBoard 지침에 따라시 ->https://www.reviewboard.org/docs/manual/2.0/webapi/2.0/resources/diff-list/ 내 요청 헤더 내 요청 본문이

------- 1511345733192 
Content-Disposition: form-data; name="basedir" 

/trunk_projectABC/ 
------- 1511345733192 
Content-Disposition: form-data; name="path"; filename="build.diff" 
Content-Type: text/xml 

Index: utility/build.bat 
=================================================================== 
--- utility/build.bat (revision 67210) 
+++ utility/build.bat (working copy) 
@@ -10,8 +10,8 @@ 
echo off 
set thpcra=false 
set patchBuild=false 
-set help=true 
-set clientBuild=true 
+set help=false 
+set clientBuild=false 
set runJavaTestCases=false 
set buildpath="%BUILD_PATH%" 
set jdkpath="%JDK_17%" 
------- 1511345733192 -- 
처럼 보이는이

{Content-Type: multipart/form-data; boundary=------- 1511347017267}{Accept: application/xml}{Authorization: token 4937d...sometoken...584b23} 

과 같은

다른 질문이 여기에 있습니다. review board diff not uploading repo URL + basedir + 상대 경로가 올바르게 설정되어 있지만 서버에서 BAD REQUEST 응답을 받는다.

참고 : 나는 HttpURLConnection conn = (HttpURLConnection) url.openConnection();

내가 서버에서 잘못된 요청을 받고있는 이유에 대한 모든 입력을 사용하고 내가 TortoiseSVN이 도구를 사용은 diff를 생성?

답변

0

내 질문에 답해주세요.

PrintWriter를 사용하여 요청 본문을 연결 출력 스트림에 작성하고있었습니다. 아마도 여분의 문자가 도입 된 스트림을 사용하거나 요청 본문을 잘못 조작했을 수 있습니다. 그러나 그것이 잘못된 요청을 얻은 이유였습니다.

이제 요청 본문을 만들기 위해 MultipartRequestEntity를 사용하고 있습니다. 여기에 코드 조각이 작동하고 검토 요청에 DIFF 파일을 업로드

PostMethod method = new PostMethod(apiURL); 
File diff = new File("D:/path_to_diff/build.diff"); 
partsList.add(new FilePart("path", diff.getName(), diff)); 
partsList.add(new StringPart("basedir", "/trunk_projectABC/")); 
Part[] parts = partsList.toArray(new Part[partsList.size()]); 
RequestEntity entity = new MultipartRequestEntity(parts, method.getParams()); 
method.setRequestEntity(entity); 

입니다

관련 문제