이미 클라이언트 측에서 GWT를 사용하여 POST 요청과 함께 XML 파일을 문자열 + 그림으로 보내는 많은 방법을 시도했습니다. 문자열을 성공적으로 보낼 수는 있지만 RequestBuilder를 사용하여 파일 (그림)을 보내는 방법을 모르겠습니다. 이제 문자열 만 보낼 수 있습니다.GWT 클라이언트 : 다중 파트/양식 데이터 게시 요청을 사용하여 파일 보내기
GWT 클라이언트 (RequestBuilder)를 사용하여 multipart/form-data POST 요청으로 파일을 보내는 방법을 아는 사람이 있습니까?
피씨 : 파일을 업로드하고 싶지 않기 때문에 업 로더 나 비슷한 것을 필요로하지 않습니다. Phonegap을 사용하여 모바일 앱을 개발하고 POST 요청에 따라 서버 (타사 서비스)로 보내야하는 사진을 작성 중입니다.
미리 감사드립니다. 여기
일부 코드 :
public void sendPost() throws RequestException {
String boundary = createBoundary();
String xml = "<note> <to>Müller</to> <from>Jani</from> <heading>Erinnerung</heading> <body>Ich wohne in der Leipzigerstraße</body> </note>";
String requestData = getRequestData(boundary, xml);
RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, "http://localhost:8080/xxx/yyy");
builder.setHeader("Content-Type", "multipart/form-data; charset=UTF-8; boundary=" + boundary);
builder.setHeader("Content-Length", Long.toString(requestData.length()));
try {
builder.sendRequest(requestData, new RequestCallback() {
public void onResponseReceived(Request request, Response response) {
}
public void onError(Request request, Throwable exception) {
exception.printStackTrace();
}
});
} catch (RequestException e) {
e.printStackTrace();
}
}
private String getRequestData(String boundary, String xml) {
String s = "";
s += "--" + boundary + "\r\n";
s += getRequestParameter("xml", xml + "");
s += "--" + boundary + "--\r\n"; // end
return s;
}
private String getRequestParameter(String key, String value) {
return "Content-Disposition: form-data; name=\"" + key + "\"\r\n\r\n"
+ value + "\r\n";
}
private String createBoundary() {
return "----GoneVerticalBoundary" + getRandomStr() + getRandomStr();
}
private String getRandomStr() {
return Long.toString(random.nextLong(), 36); //random -> DEFINED IN THE CLASS BODY
}
(클래스 Base64Util 참조) 그 JS에서, 다음 _porting_을에 GWT는 간단해야합니다. 그러나 GWT는 기적을 할 수 없습니다. –
+1 질문입니다. 유스 케이스를 보지 마라. 또한 전화 갭으로 재표시됩니다. – SSR