I`m using the following code post values using JSoup:
Document document = Jsoup.connect("http://www......com/....php")
.data("user","user","password","12345","email","info@tutorialswindow.com")
.method(Method.POST)
.execute()
.parse();
And now I want to submit a file, too. Like a form with a file field. Is this possible ? If is than how ?
This post led me to the right path but I had to tweak the posted answers to make my use case work. Here's my code:
The basic difference is that I first login to the site, retain the cookie from the response (
conn
) and then use it for the subsequent upload of the file.Hope it helps guys.
This is only supported since Jsoup 1.8.2 (Apr 13, 2015) via the new
data(String, String, InputStream)
method.In older versions, sending
multipart/form-data
requests is not supported. Your best bet is using a fullworthy HTTP client for this, such as Apache HttpComponents Client. You can ultimately get the HTTP client response asString
so that you can feed it toJsoup#parse()
method.The accepted answer works and was correct at the time of writing, but since then JSoup has evolved and since version 1.8.2 it is possible to send files as part of multipart forms: