!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]