package mediawiki.request; import java.io.InputStream; import java.net.URL; import org.apache.http.entity.mime.content.InputStreamBody; import mediawiki.MediaWikiConnection; import mediawiki.MediaWikiPostRequest; import mediawiki.MediaWikiRequest; public class UploadRequest extends MediaWikiRequest<Object> implements ManipulativeRequest { public UploadRequest(String filename, URL url, String text){ setProperty("filename", filename); setProperty("url", url.toExternalForm()); setProperty("text", text); } public UploadRequest(String filename, InputStream in, String text, String comment){ setProperty("filename", filename); setProperty("text", text); setProperty("file", new InputStreamBody(in, filename)); setProperty("comment", comment); } @Override public Object request(MediaWikiConnection c) throws Exception { String token = c.request(new TokenRequest()); MediaWikiPostRequest p = new MediaWikiPostRequest(c); p.putData(getProperties()); p.putData("action", "upload"); p.putData("token", token); return p.requestDocument(); } }