【问题标题】:Android 2.2 vs 2.3 - soapaction vs SOAPAction in HTTP headerAndroid 2.2 与 2.3 - HTTP 标头中的soapaction 与 SOAPAction
【发布时间】:2012-05-09 12:52:37
【问题描述】:

使用 ksoap2 库 (v2.6.4),SOAP 版本 11,我正在通过 2.3.3 仿真器设备执行 Web 服务。服务器识别请求的操作并提供预期的答案。 HTTP/1.1 标头(在服务器端调试)包含以下内容:

User-Agent: ksoap2-android/2.6.0+
SOAPAction: myAction
Content-Type: text/xml;charset=utf-8
Connection: close
Content-Length: 1481
Host: xxx.xxx.xxx.xxx
Accept-Encoding: gzip

尝试启动相同的应用程序 - 一切都相同(如果 IT 世界中有这样的东西),相同的源、库、soap 配置、请求、服务器等 - 但这次是在 2.2 模拟器设备上。服务器拒绝请求,声称请求中缺少 SOAPAction。日志显示此请求带有以下 HTTP 标头:

user-agent: ksoap2-android/2.6.0+
soapaction: myAction
content-type: text/xml;charset=utf-8
connection: close
content-length: 1481
Host: xxx.xxx.xxx.xxx

因此 SOAPAction(在标头的其他部分中)作为小写参数到达。服务器无法识别小写的“soapaction”并拒绝我的请求。我需要此应用程序才能在 Android 2.2+ 上运行

任何想法从哪里开始?

编辑:这就是我发送 SOAP 请求的方式。如果有帮助的话。

    public Object executeMyFunction(SoapObject request) throws Exception {

            SoapSerializationEnvelope envelope = new
 SoapSerializationEnvelope(SoapEnvelope.VER11);
            envelope.setOutputSoapObject(request);
            envelope.implicitTypes = false;
            envelope.dotNet = true;
            envelope.setAddAdornments(false);

            HttpTransportSE _ht = new HttpTransportSE(Configuration.getWsUrl());
            _ht.call("myFunction", envelope);
            return envelope.getResponse();

    }

【问题讨论】:

    标签: android http-headers ksoap2 android-ksoap2


    【解决方案1】:

    我在使用 ksoap2 时遇到了类似的问题。应用程序在 android 版本 2.2 上运行,但不在 2.3.3 上运行。导致问题的那个东西是大小写,所以我正在寻找响应头参数:

    set-cookie 
    

    插入

    Set-Cookie
    

    IgnoreCase 解决了我的问题。您应该始终尝试使用wireshark从模拟器中捕获http消息,然后比较它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-04
      • 2020-06-21
      • 1970-01-01
      • 1970-01-01
      • 2018-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多