通过Soap Android访问https网络服务

时间:2014-03-18 06:45:08

标签: android web-services https

我正在访问服务器上托管的https网络服务而没有证书验证 当我运行网络服务时,它显示我的错误  我在logcat

中搜索这样的东西
WARN/InputManagerService(51): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@43cf47d8

为什么它在Logcat中显示如下

enter image description here

我希望通过 SOAP 从我的手机访问此网络服务,而无需认证 我为访问此Web服务所做的工作是

URL="https://a.b.c.d/testservice/service.asmx"

SoapObject obj=new SoapObject(NAMESPACE,METHOD_NAME);


            obj.addProperty("p1",p2);
            obj.addProperty("p2",p2);


            SoapSerializationEnvelope ss_env=new SoapSerializationEnvelope(SoapEnvelope.VER11);
            ss_env.bodyOut=obj;
            ss_env.dotNet=true;
            ss_env.setOutputSoapObject(obj);
            HttpsTransportSE ah_tpt=new HttpsTransportSE(URL, 443, "", 30000);

            try{
                ah_tpt.call(SOAP_ACTION, ss_env);
                SoapPrimitive response=(SoapPrimitive)ss_env.getResponse();

我收到响应 SocketTimeoutException 但是当我通过浏览器访问这个Web服务时它正在工作,我怎样才能得到主要原因,是握手异常还是我不清楚这个,所以需要你的帮助

请帮助将是伟大的 谢谢,

1 个答案:

答案 0 :(得分:0)

通过增加TimeOut尝试此代码,因为你得到Socket timeOut Exception这是因为更少的超时。它在我们在这里定义的时间间隔调用Web服务3秒,如果服务器通过响应在3秒然后它没关系,否则它将通过Socket TimeOut异常。这可能是原因。

  URL="https://a.b.c.d/testservice/service.asmx"

SoapObject obj=new SoapObject(NAMESPACE,METHOD_NAME);


        obj.addProperty("p1",p2);
        obj.addProperty("p2",p2);


        SoapSerializationEnvelope ss_env=new      SoapSerializationEnvelope(SoapEnvelope.VER11);
        ss_env.bodyOut=obj;
        ss_env.dotNet=true;
        ss_env.setOutputSoapObject(obj);
        HttpsTransportSE ah_tpt=new HttpsTransportSE(URL, 443, "", 60000); // **Change   this.**

        try{
            ah_tpt.call(SOAP_ACTION, ss_env);
            SoapPrimitive response=(SoapPrimitive)ss_env.getResponse();

希望这有帮助。