最近做项目时遇到java调用sharepoint webservice的问题,由于sharepoint webservice需要认证,因此不能像调用天气预报服务那样调用,这个问题一直困扰了我一个多星期,现在终于解决。
java调用需要权限认证的webservice目前主流的办法主要有三种,AXIS2,XFIRE,HTTPCLIENT。 我所采用的是采用HTTPCLIENT,具体代码如下:
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.net.Inet4Address;
import java.net.URL;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.Credentials;
import org.apache.commons.httpclient.NTCredentials;
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.params.DefaultHttpParams;
import org.apache.commons.httpclient.params.DefaultHttpParamsFactory;
import org.apache.commons.httpclient.params.HttpParams;
import org.apache.commons.httpclient.protocol.Protocol;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.*;
import org.apache.commons.httpclient.SimpleHttpConnectionManager;
import org.apache.commons.logging.LogConfigurationException;
public class spwebservice_checkout_checkin {
public static void main(String[] args) throws Exception
{
String soapRequestData_Upload ="<?xml version=\"1.0\" encoding=\"utf-8\"?><soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\"> <soap12:Body> <UploadFile xmlns=