2012-02-22 118 views
1

我試圖建立使用kso​​ap2 LIB肥皂的SharePoint信封

... 

     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

     request.addProperty("listName", "Tasks"); 
     request.addProperty("viewName", null); 
     request.addProperty("query", null); 
     request.addProperty("viewFields", null); 
     request.addProperty("rowLimit", "30"); 
     request.addProperty("queryOptions", null); 
     request.addProperty("webID",null); 

     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     envelope.dotNet = true; 
     envelope.setOutputSoapObject(request); 

     String authentication = android.util.Base64.encodeToString("Administrator:Password".getBytes(), android.util.Base64.NO_WRAP); 
     List<HeaderProperty> headers = new ArrayList<HeaderProperty>(); 

     HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 
     androidHttpTransport.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); 
     androidHttpTransport.debug = true; 

     try { 
      headers.add(new HeaderProperty("Authorization", "Basic " + authentication)); 
      androidHttpTransport.call(SOAP_ACTION, envelope, headers); 
      Log.d("D", androidHttpTransport.requestDump); 
      SoapObject response = (SoapObject) envelope.getResponse(); 
... 

在調試模式下我看到這個信封正確的SOAP信封:

<?xml version="1.0" encoding="utf-8"?> 
    <v:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:d="http://www.w3.org/2001/XMLSchema" xmlns:c="http://schemas.xmlsoap.org/soap/encoding/" xmlns:v="http://schemas.xmlsoap.org/soap/envelope/"> 
     <v:Header/> 
     <v:Body> 
      <GetListItems id="o0" c:root="1" xmlns="http://schemas.microsoft.com/sharepoint/soap/"> 
      <listName i:type="d:string">Tasks</listName> 
      <viewName i:null="true"/> 
      <query i:null="true"/> 
      <viewFields i:null="true"/> 
      <rowLimit i:type="d:string">30</rowLimit> 
      <queryOptions i:null="true"/> 
      <webID i:null="true"/> 
      </GetListItems> 
     </v:Body> 
    </v:Envelope> 

哪裏是頭數據?也許它會被添加到調用方法中? 它是一個正確的信封? 而且我在服務器授權時也遇到了以前發表的同樣的錯誤。

回答

0

標頭數據在HTTP標頭中發送,而不是在SOAP主體中發送,這就是爲什麼他們稱之爲標頭。當您使用「HTTP基本」身份驗證時,會添加一個Authorization標頭。看到來自Wikipedia的一個例子:http://en.wikipedia.org/wiki/Basic_access_authentication#Example

+0

您可以使用soapUI來測試,通過嘲笑sharepoint服務。 – 2012-02-22 19:06:35