!Miniapp sending a file or a string via a HTTP POST
%%prettify
{{{
import java.io.File;
import java.io.IOException;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.DefaultHttpClient;
public class Uploader {
public static void main(String[] args) throws IOException {
HttpClient httpclient = new DefaultHttpClient();
HttpPost post = new HttpPost(
"http://localhost:8080/KnowWE/action/ReceiveJenkinsFileAction");
MultipartEntity entity = new MultipartEntity();
entity.addPart("file", new FileBody(new File("newfile.xml")));
// entity.addPart("test", new StringBody("huhu"));
post.setEntity(entity);
HttpResponse response = httpclient.execute(post);
}
}
}}}
/%
!The action in KnowWE parsing the HTTP POST
%%prettify
{{{
...
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
...
public class ReceiveJenkinsFileAction extends AbstractAction {
@Override
public void execute(UserActionContext context) throws IOException {
try {
List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(context.getRequest());
for (FileItem item : items) {
System.out.println(item.getFieldName());
System.out.println(item.getName());
InputStream filecontent = item.getInputStream();
InputStreamReader is = new InputStreamReader(filecontent);
StringBuilder sb = new StringBuilder();
BufferedReader br = new BufferedReader(is);
String read = br.readLine();
while (read != null) {
sb.append(read);
read = br.readLine();
}
System.out.println(sb.toString());
}
}
catch (FileUploadException e) {
e.printStackTrace();
}
}
}
}}}
/%
!Still todo
* We need to authenticate somehow, which may not be easy...
* [http://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html]