Я пишу приложение для Android, которое будет использовать метод getlist () службы lists.amx в sharepoint 2010. Я использую ksoap2-android для обработки своих мыльных сообщений. Когда я пытаюсь аутентифицироваться, я получаю исключение xmlpullparser, ожидаемое START_TAG ...
Почему следующий код не аутентифицируется на сервере sharepoint?
Вот мой код:
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;
/** Called when the activity is first created. */
@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);
//transport.call(SOAP_ACTION, envelope);
Object result = envelope.getResponse();
return result.toString();
}
catch(Exception e)
{
return e.toString();
}
}
}
Вот transport.requestdump (предшествующий удалению '<'): </p>
Вот транспорт.responsedump (предшествующий «<» удален): </p>
- ! DOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.01 // EN" "http://www.w3.org/TR/html4/strict.dtd">
- HTML>
- HEAD>
- НАЗВАНИЕ> Неверный запрос
- META HTTP-EQUIV = "Content-Type" Content = "text / html; charset = us-ascii">
- / HEAD>
- BODY>
- h2> Неверный запрос - Неверное имя хоста
- hr> p> Ошибка HTTP 400. Неверное имя хоста запроса.
- / BODY>
- / HTML>