使用Ksoap2 for android连接到Exchange

时间:2015-07-02 18:10:06

标签: android email exchange-server ksoap2 android-ksoap2

我正在尝试使用kso​​ap2连接到交换Web服务器以在android中创建电子邮件应用程序。到目前为止,由于微软没有直截了当地解释如何使用自动发现肥皂方法,所以我很少继续下去。到目前为止,这就是我所拥有的一切

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
        String userpass = username+password;
        NTCredentials cred = new NTCredentials(userpass);

我使用的是Android API 21,因为它仍然使用NTCredentials方法。那么我的问题是如何连接到Exchange服务器。然后我还需要做任何其他事情来查看电子邮件或发送电子邮件。我的应用程序已经可以显示imap或pop3邮件客户端的收件箱,所以我可以使用kso​​ap连接到Exchange服务器然后只使用已定义的imap和pop3方法来完成其他任务吗?

1 个答案:

答案 0 :(得分:1)

正如我在上面的评论中所提到的,我之前没有这样做,但我已经使用了ksoap2,所以我会尝试这样的事情:

String NAMESPACE = "http://www.namespace.com/";
String METHOD_NAME = "MethodName";
String SOAP_ACTION = NAMESPACE+METHOD_NAME;
String URL = "https://www.namespace.com/services/Service.asmx";

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
// Set all input params   
request.addProperty("property", "value");   
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
// Enable the below property if consuming .Net service
envelope.dotNet = true;
envelope.setOutputSoapObject(request);

HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try 
{
    List<HeaderProperty> headerList = new ArrayList<HeaderProperty>();
    //I would use this for authentication
    headerList.add(new HeaderProperty("Authorization", "Basic " + Base64.encode((username+":"+password).getBytes())));

    androidHttpTransport.call(SOAP_ACTION, envelope, headerList);
    SoapObject response = (SoapObject)envelope.getResponse();
}
catch(Exception e)
{
}

这是Basic authentication