I am writing an Android application that will use the getlist () method of lists.amx service in sharepoint 2010. I use ksoap2-android to process my soap messages. When I try to authenticate, I get the xmlpullparser exception expected by START_TAG ... Why won't the following code authenticate to the sharepoint server?
Here is my code:
public class SharepointList extends Activity { private static final String SOAP_ACTION = "http://schemas.microsoft.com/sharepoint/soap/GetList"; private static final String METHOD_NAME = "GetList"; private static final String NAMESPACE = "http://schemas.microsoft.com/sharepoint/soap/" ; private static final String URL = "http://<ip of sharepoint server>/_vti_bin/lists.asmx"; private TextView result; private Button btnSubmit; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); result = (TextView)findViewById(R.id.textView1); btnSubmit = (Button)findViewById(R.id.button1); btnSubmit.setOnClickListener(new OnClickListener(){ public void onClick(View v) { if(v.getId() == R.id.button1) { String list = getMobileTestList(); result.setText(list); } } }); } private String getMobileTestList() { PropertyInfo pi = new PropertyInfo(); pi.setName("listName"); pi.setValue("Mobile Test List"); SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); request.addProperty(pi); String authentication = android.util.Base64.encodeToString("username:password".getBytes(), android.util.Base64.DEFAULT); List<HeaderProperty> headers = new ArrayList<HeaderProperty>(); headers.add(new HeaderProperty("Authorization","Basic " +authentication)); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet = true; envelope.setOutputSoapObject(request); HttpTransportSE transport = new HttpTransportSE(URL); try { transport.debug = true; transport.call(SOAP_ACTION, envelope, headers);
The following is the transport information .requestdump (preceeding '<' removed):
- 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: Title / ">
- v: Body>
- GetList xmlns = "http://schemas.microsoft.com/sharepoint/soap/" id = "o0" c: root = "1">
- listName i: type = "d: string"> List of mobile tests
- / Getlist>
- / v: Body>
- / v: Envelope>
Here is the transport. responsedump (preceeding '<' removed):
- ! DOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.01 // EN" "http://www.w3.org/TR/html4/strict.dtd">
- HTML>
- HEAD>
- TITLE> Invalid request
- META HTTP-EQUIV = "Content-Type" Content = "text / html; charset = us-ascii">
- / HEAD>
- BODY>
- h2> Invalid request - invalid host name
- hr> p> HTTP 400 error. Invalid request host name.
- / Body>
- / Html>
source share