gpt4 book ai didi

Android 2.2 与 2.3 - HTTP header 中的 soapaction 与 SOAPAction

转载 作者:行者123 更新时间:2023-11-29 22:07:17 25 4
gpt4 key购买 nike

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

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 header :

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(在 header 的其他部分中)作为小写参数到达。服务器无法识别小写的“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();

}

最佳答案

我在使用 ksoap2 时遇到了类似的问题。应用程序在 android 版本 2.2 上工作,但在 2.3.3 上不工作。导致问题的是大小写,所以我在寻找响应 header 参数:

set-cookie 

代替

Set-Cookie

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

关于Android 2.2 与 2.3 - HTTP header 中的 soapaction 与 SOAPAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10516552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com