Android使用kso​​ap连接到soap web-service并使用摘要验证

时间:2013-06-20 10:12:06

标签: android web-services http-status-code-401 ksoap digest-authentication

我在使用DIGEST身份验证从PHP soap Web服务获取Authorization标头时遇到问题。 (PHP客户端可以正常使用Web服务)。

我收到错误401,但我无法在信封中找到标题。 headerIn字段为空。

我需要以某种方式连接到Web服务 - 获取标头(主要问题),然后重新创建Digest授权标头(这很容易)并再次使用身份验证信息连接到Web服务。

有什么建议吗?

@Override
protected String doInBackground(SoapProperty... soapProperties) {
    if(this.methodName.isEmpty())
        throw new IllegalArgumentException("methodName is not specified");

    String response="";
    android.os.Debug.waitForDebugger();

    try{
        String SOAP_ACTION = this.namespace + "/" + this.methodName;
        SoapObject request = new SoapObject(this.namespace, this.methodName);

        for(SoapProperty s : soapProperties){
            request.addProperty(s.getKey(), s.getValue());
        }

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

        HttpTransportSE ht = new HttpTransportSE(this.url);

        ht.call(SOAP_ACTION, envelope);
        response = (String)envelope.getResponse();
    }
    catch(Exception e){
        e.printStackTrace();
        publishProgress(true);
    }

    return response;
}

0 个答案:

没有答案