Po raz pierwszy wysyłam zgłoszenia wieloczęściowe, a po kopaniu tutaj, jeszcze bardziej się pogubiłem, więc każda pomoc dotycząca "poprawnego" sposobu będzie bardzo przydatna.Jak wysłać żądanie POST wieloczęściowe za pomocą HttpURLConnection w java?
Mam funkcję, która powinna uzyskać: ścieżkę do pliku i reprezentację łańcuchową JSON i wysłać żądanie POST do serwera przy użyciu wieloczęściowego.
Nie jestem pewien, kiedy użyć typ boundary
i "multipart/form-data"
treści, a różnica między addPart
i addTextBody
i kiedy (lub dlaczego) jest zawsze napisany Content-Disposition: form-data; name=\
public String foo(String filePath, String jsonRep, Proxy proxy)
{
File f = new File(filePath);
HttpURLConnection connection;
connection = (HttpURLConnection) url.openConnection(proxy);
connection.setRequestProperty("Content-Type", "multipart/form-data"); // How should I generate boundary? Should it be added here?
if (myMethod == "POST")
{
connection.getOutputStream().write(? Both the json string and the file bytes??);
}
.... checking there is no error code etc..
return ReadResponse(connection) // read input stream..
Teraz nie jestem pewności, jak dalej, i jak napisać plik i ciąg json widziałem ten kod:
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
builder.addPart("upfile", fileBody);
builder.addPart("text1", stringBody1);
builder.addPart("text2", stringBody2);
Ale ja nie potrafię zrozumieć, jak to jest podłączony do mojego connection
.
Czy możesz pomóc?
To exacly mój problem. Nie mogę znaleźć wiele informacji na temat korzystania z MultipartEntityBuilder i HttpURLConnection. –