I used the Apache Jakarta HttpClient libraries to accomplish this. HttpClient is available from http://jakarta.apache.org/commons/httpclient/
Make sure that you have the following jar files in you CLASSPATH:
import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.*; import org.apache.commons.httpclient.params.HttpMethodParams; import java.io.*; public class getFile1 { public static void main(String[] args) { //Parameters String getUrl = "http://localhost:8000/psreports/ps/356/DDDAUDIT_500.PDF"; String loginUrl = "http://localhost:8000/psp/ps/?cmd=login"; String userId = "VP1"; String passWord = "VP1"; String outFile = "C:/temp/report_output.pdf"; //Logging System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog"); System.setProperty("org.apache.commons.logging.simplelog.showdatetime","true"); System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire.header","debug"); System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient","debug"); //Create objects HttpClient client = new HttpClient(); GetMethod get = new GetMethod(getUrl); PostMethod post = new PostMethod(loginUrl); NameValuePair[] logindata = {new NameValuePair("userid", userId),new NameValuePair("pwd", passWord)}; try { //Login to PeopleSoft with userid and password above post.setRequestBody(logindata); client.executeMethod(post); post.releaseConnection(); //Get the file from the PeopleSoft report repository client.executeMethod(get); InputStream in = get.getResponseBodyAsStream(); OutputStream out = new FileOutputStream(outFile); //Write out InputStream to file byte[] b = new byte[1024]; int len; while ((len = in.read(b)) != -1) { out.write(b, 0, len); } //Clean up get.releaseConnection(); in.close(); } catch (Exception ex) { System.out.println(ex); } } }