curl '-F'옵션에 해당하는 URL을 지정된 URL로 보내려고합니다.서버에 게시 된 HttpPost 인수가 HTTP 500 오류를 반환합니다.
이 명령은 컬을 사용하는 모습입니다 :
curl -F"optionName=cool" -F"[email protected]" http://myurl.com
내가 아파치의 HttpPost 클래스 httpcomponents 라이브러리를 사용에서 올바른입니다 생각합니다.
나는 name = value 유형의 매개 변수를 제공합니다. optionName은 단순히 문자열이고 'file'은 드라이브에 로컬로 저장된 파일입니다 (그러므로 @myFile은 로컬 파일을 나타냅니다).
응답을 인쇄 할 경우 HTTP 500 오류가 발생합니다 ... 위의 Curl 명령을 사용할 때 서버가 응답해야하므로 무엇이 문제를 일으키는 지 잘 모르겠습니다. 아래 코드를 살펴볼 때 몇 가지 간단한 실수가 있습니까? 사용되지 않습니다
MultipartEntity entity = new MultipartEntity();
entity.addPart("optionName", "cool");
entity.addPart("file", new FileBody("/path/to/your/file"));
....
post.setEntity(entity);
편집
MultipartEntity
및 FileBody
생성자는 소요 :
HttpPost post = new HttpPost(postUrl);
HttpClient httpClient = HttpClientBuilder.create().build();
List<BasicNameValuePair> nvps = new ArrayList<BasicNameValuePair>();
nvps.add(new BasicNameValuePair(optionName, "cool"));
nvps.add(new BasicNameValuePair(file, "@myfile"));
try {
post.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8"));
HttpResponse response = httpClient.execute(post);
// do something with response
} catch (Exception e) {
e.printStackTrace();
}
수수께끼의 코드 해결, thx ssssteffff! – CODEBLACK