Sorry I have to split this mail in 2 since apache.org mail server wont'
allow large messages.
The code:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.security.Security;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.commons.httpclient.Credentials;
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpVersion;
import org.apache.commons.httpclient.NTCredentials;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthPolicy;
import org.apache.commons.httpclient.auth.AuthScheme;
import org.apache.commons.httpclient.auth.AuthScope;
import
org.apache.commons.httpclient.auth.CredentialsNotAvailableException;
import org.apache.commons.httpclient.auth.CredentialsProvider;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.InputStreamRequestEntity;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.apache.commons.httpclient.params.HttpMethodParams;
/**
*
* This is a sample application that demonstrates
* how to use the Jakarta HttpClient API.
*
* This application sends an XML document
* to a remote web server using HTTP POST
*
* @author Sean C. Sullivan
* @author Ortwin Glück
* @author Oleg Kalnichevski
*/
public class PostXML {
private Object password;
/**
*
* Usage:
* java PostXML http://mywebserver:80/ c:\foo.xml
*
* @param args command line arguments
* Argument 0 is a URL to a web server
* Argument 1 is a local filename
*
*/
public static void main(String[] args) throws Exception {
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", "debug");
System.setProperty(
"org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient",
"debug");
postWithSupportedAuth();
}
public static void postWithSupportedAuth() throws IOException,
HttpException, IllegalAccessException, InstantiationException,
ClassNotFoundException, ParserConfigurationException {
String secProviderName = "com.sun.crypto.provider.SunJCE";
java.security.Provider secProvider =
(java.security.Provider)Class.forName(secProviderName).newInstance();
Security.addProvider(secProvider);
String strURL = "
http://driman8.cgsh.com/worksite/services/factory.asmx";
String strXMLFilename = "C:/project/junk/Test/Java
Source/request.xml";
String requestDoc =
ImanageCreateWorkspaceSOAP.getTestDoc();
// Prepare HTTP post
PostMethod post = new PostMethod(strURL);
post.setRequestEntity(new StringRequestEntity(requestDoc,
"text/xml; charset=UTF-8","UTF-8"));
post.setRequestHeader("Content-type", "text/xml; charset=UTF-8");
post.setRequestHeader("SOAPAction",
"\"http://worksite.imanage.com/CreateWorkspace\""
);
HttpClient httpclient = new HttpClient();
post.getParams().setVersion(HttpVersion.HTTP_1_1);
httpclient.getParams().setParameter(CredentialsProvider.PROVIDER,
new PostXML.MyCredentialsProvider());
try {
int result = httpclient.executeMethod(post);
System.out.println("Response status code: " + result);
System.out.println("Response body: ");
} finally {
post.releaseConnection();
}
}
public static void getWithBasicAuth(String url, String username,
String password, String host, int port, String domain) throws
HttpException, IOException {
//http://www.developer.ibm.com/partnerworld/mem/index.html
GetMethod get = new GetMethod(url);
HttpClient httpclient = new HttpClient();
httpclient.getState().setCredentials(
new AuthScope(host, port,domain), new
NTCredentials(username,password,host,domain));
int result = httpclient.executeMethod(get);
// Display status code
System.out.println("Response status code: " + result);
// Display response
System.out.println("Response body: ");
System.out.println(get.getResponseBodyAsString());
}
public static class MyCredentialsProvider implements
CredentialsProvider {
/**
* @see
org.apache.commons.httpclient.auth.CredentialsProvider#getCredentials(AuthScheme,
String, int, boolean)
*/
public Credentials getCredentials(
AuthScheme scheme,
String host,
int port,
boolean proxy)
throws CredentialsNotAvailableException {
return new UsernamePasswordCredentials(
"myusername","mypassword");
}
}
}
This message is being sent from a law firm and may contain confidential or
privileged information. If you are not the intended recipient, please advise
the sender immediately by reply e-mail and delete this message and any
attachments without retaining a copy.