使用 SOAP Web 服务时出现“未找到操作标头”错误消息

2023-11-21

在 iOS 应用程序中使用 SOAP Web 服务时出现以下错误

"No Action header was found with namespace 'http://www.w3.org/2005/08/addressing' for the given message."

相同的 Web 服务在 SOAP UI Tool 中运行良好。

以下是请求格式

NSString *data = @"<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:tem=\"http://tempuri.org/\">
<soap:Header></soap:Header>
<soap:Body><tem:GetEvaluators></tem:GetEvaluators></soap:Body>
</soap:Envelope>";

NSString *url = @"webservice url";
NSData *postData = [data dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:url]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:postData];
[request setTimeoutInterval:20.0];
[request setValue:@"application/soap+xml;charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"http://tempuri.org/IATCService/GetEvaluators" forHTTPHeaderField:@"SOAPAction"];
 NSData *urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

从网络服务收到的完整错误响应

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
<s:Header>
    <a:Action s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/fault</a:Action>
</s:Header>
<s:Body>
    <s:Fault>
        <s:Code>
            <s:Value>s:Sender</s:Value>
            <s:Subcode>
                <s:Value>a:MessageAddressingHeaderRequired</s:Value>
            </s:Subcode>
        </s:Code>
        <s:Reason>
            <s:Text xml:lang="en-US">No Action header was found with namespace 'http://www.w3.org/2005/08/addressing' for the given message.</s:Text>
        </s:Reason>
        <s:Detail>
            <a:ProblemHeaderQName>a:Action</a:ProblemHeaderQName>
        </s:Detail>
    </s:Fault>
</s:Body>

任何帮助真的很感激。


我们在基于 ASP.NET 的服务器上遇到了同样的问题(使用 python/suds 时出现错误消息,相同的查询在 SoapUi 中工作);经过大量挖掘,我们发现我们需要添加一个包含操作的 SOAP 标头(作为 XML 元素);在 Content-Type 或 SOAPAction 标头中包含操作还不够(但也没有坏处)。以下是成功查询的示例(来自 SoapUi):

<SOAP-ENV:Envelope xmlns:ns0="..." xmlns:ns1="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope">
   <SOAP-ENV:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"><wsa:Action>http://www.foo.com/.../SomeJob/getParameters</wsa:Action></SOAP-ENV:Header>
   <ns1:Body>
      <ns0:getParameters>...</ns0:getParameters>
   </ns1:Body>
</SOAP-ENV:Envelope>

使用 Python 和 SUDS,我们是这样做的:

from suds.sax.element import Element
wsans = ('wsa', "http://www.w3.org/2005/08/addressing")
client.set_options(soapheaders = Element('Action', ns=wsans).setText(action))

可以从方法中查询操作,即如果您想调用方法 client.service.foo,请使用

action = client.service.foo.method.soap.action

我们通过查看 SoapUi HTTP 日志发现了这一点。 (我们还尝试了 Wireshark,但这不起作用,因为我们尝试使用不属于我们的 https 服务器。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 SOAP Web 服务时出现“未找到操作标头”错误消息 的相关文章

  • PFQueryTableViewController 错误

    我正在遵循在线教程 使用 Parse 作为后端创建照片共享应用程序 我已经运行了两次教程 两次都从头开始创建应用程序 但在同一位置仍然出现相同的错误 我到处寻找解决方案 但仍然没有运气 我正在使用 PFQueryTableViewContr
  • UIView晃动动画

    我试图在按下按钮时使 UIView 摇动 我正在调整我找到的代码http www cimgf com 2008 02 27 core animation tutorial window shake effect http www cimgf
  • Mac OS X 上的 .dll 等效项 [重复]

    这个问题在这里已经有答案了 我来自一个Windows背景 我习惯于通过创建 dll 然后分发所有库和文档 因此 如果用户想要使用它 他会添加对库的引用并使用它 但是 在 Mac 中 我正在开发 SDK 并且我想要一种方法creating a
  • 如何动态获取 UITableViewCell 的高度

    我创建了自定义的tableViewCell 我在UITableViewCell中添加了UIView SubView 所以我在 UIView 中的所有动态文本和图像内容都会根据文本和图像大小而变化 但现在 HeightforRowAtInde
  • 无法在 ios 应用程序中通过 googlecast 正确投射视频

    我正在开发一个基于 AVPlayer 的自定义视频播放器项目 尝试整合谷歌演员 我已经根据谷歌图进行了集成 https codelabs developers google com codelabs cast videos ios http
  • 错误消息:您输入的捆绑包 ID 已被使用

    我正在尝试发布一个 iPhone 应用程序 这不是第一个 我过去已经发表过其他的 因此 我在第一个和第二个表单中输入了所需的信息 然后填写了第三个大表单 您还可以在其中上传图标和屏幕截图 好吧 我在上传屏幕截图之前按下了 保存 按钮 因为我
  • 有什么方法可以询问方法的名称吗?

    我正在尝试调试我正在开发的 iPhone 应用程序 向各种源文件添加 50 条 NSLog 语句的想法让我感到很兴奋 我想做的是写一对陈述 比如 NSString methodName self methodName NSLog metho
  • 如何在 iOS 13 中将 UISegmentedControl 的背景颜色设置为白色

    iOS 13 对 UISegmentedControl 进行了一些更改 包括切换所选片段时的非常漂亮的动画 但是我注意到它没有显示backgroundColor属性正确 它似乎总是有一点色彩 我见过回答如何设置的问题selectedSegm
  • Xamarin - 错误:dsymutil 退出,代码为 72

    最近升级到 VS for Mac 8 10 21 在构建应用程序时 我得到 Xamarin Shared targets 3 3 Error dsymutil exited with code 72 这是 Xcode 13 3 的情况 完整
  • 使用数组中的字符串淡入/淡出标签

    func setOverlayTitle self overlayLogo text Welcome var hello String Bon Jour GUTEN nMORGEN BONJOUR HOLA BUENOS D AS BUON
  • 在 WKWebView 中禁用缩放?

    有谁知道在 WKWebView 中禁用双击和捏缩放的简单方法 我尝试过的任何方法都不起作用 Webview scrollView allowsMagnification false Error value of type WKWebView
  • 如何使用 IOS 12 在 UITableViewCell 中正确添加 UICollectionView

    由于某些原因 在使用 Xcode 10 beta 时 我无法正确显示 tableview 单元格内集合中的某些项目 在过去的四天里我尝试了我所知道的一切 我做了一个小项目样本来看看我的问题是什么 如果有人想在本地运行完整代码 请参见此处 h
  • 在 Objective-C 中的 Swift 类上调用 NSStringFromClass 返回模块损坏的名称

    我知道这个问题 https stackoverflow com questions 24107658 get a user readable version of the class name in swift in objc nsstri
  • 有没有办法在 onclick 触发时禁用 iPad/iPhone 上的闪烁/闪烁?

    所以我有一个有 onclick 事件的区域 在常规浏览器上单击时 它不会显示任何视觉变化 但在 iPad iPhone 上单击时 它会闪烁 闪烁 有什么办法可以阻止它在 iPad iPhone 上执行此操作吗 这是一个与我正在做的类似的示例
  • 诊断和仪器均缺少“僵尸”选项

    运行 Xcode 4 0 2 Zombie 选项丢失 其他 SO 帖子建议找到它的两个地方 Product gt Run looks like this Product gt Profile looks like this 奇怪的是 我之前
  • ios8 键盘高度有所不同

    我使用下面的代码来获取键盘高度 该高度在带有 ios8 的 iPhone 5s 设备中与带有 ios7 的 IPhone4s 设备中有所不同 因此 当我在带有 ios8 的 iPhone5s 中点击它时 我的文本字段移动得非常高 而相同的代
  • Glib 在 iPhone 应用程序中的使用

    我想基于现有的开源 Objective C 框架开发一个 iPhone 应用程序 但是该框架广泛使用了 glib 库 我找不到一种方法来构建和包含 iPhone 应用程序的 glib 库 非越狱 有什么办法可以做到这一点 或者有没有推荐的方
  • UIViewController 内的 UIsearchController 使用自动布局

    有没有人成功实施过UIViewController其中包含两个UISearchController searchBar and a UItableView使用自动布局来布局所有内容 我正在尝试实现类似的目标1密码 https itunes
  • 使用强光混合模式时突出显示伪影

    我正在 iPhone 应用程序中使用顶部图像的 HardLight 混合模式混合两个图像 它看起来像这样 UIGraphicsBeginImageContext size sourceImage drawInRect rectangle b
  • 致命错误:在 Swift 中解包可选值时意外发现 nil

    所以我试图获取 Swift 中输入字段的文本 这就是我得到的 class ViewController UIViewController IBOutlet var passwordField UITextField IBOutlet var

随机推荐

  • 报告定义无效

    我已经转换了一个 rdlc从 SSRS 2005 重新排序到 SSRS 2008 现在 当我要构建该项目时 我遇到了错误 报告定义无效 详细信息 报告定义具有无效的目标命名空间 http schemas microsoft com sqls
  • 从字符串中删除特殊字符

    我有一个字符串 Mikael H fstr m 其中包含一些特殊字符 如何使用 python 删除它 您可以使用unicodedata模块用于规范化 unicode 字符串并将其编码为 ASCII 形式 如下所示 gt gt gt impo
  • 将源安全数据库迁移到具有历史记录的 SubVersion

    Folks 我们有许多源安全数据库应该迁移到 SubVersion 是否有一种 经过测试和证明的 方法可以将它们与历史一起迁移 谢谢 埃萨姆 我也在考虑迁移 我找到了一些可以在此过程中帮助您的页面 从 Visual SourceSafe 迁
  • 从矩阵列中减去特征向量

    Matrix linesP0是 3xN 我想从向量中减去它planeP0即 3x1 有没有更智能 更快速的方法来做到这一点 现在我正在使用 for 循环 示例代码如下 MatrixXf temp linesP0 rows linesP0 c
  • 错误的可打包异常

    首先 我必须说我一直在这个网站上寻找我的问题的答案 我发现了几个有关此异常的主题 但毕竟这些线程对我没有多大帮助 所以这就是我发布的原因这 每次我尝试从包裹中恢复信息时 都会遇到 Bad Parcelable 异常 这是我的班级代码 pub
  • 在 Swift 4 中使用 reduce 时出现“上下文闭包类型需要 2 个参数”错误

    以下代码在 Swift 3 中编译 extension Array where Element Equatable var removeDuplicate Element return reduce 0 0 contains 0 1 0 0
  • 发送语音识别参数。结果作为 UWP 桌面桥包中的参数

    我想弄清楚是否可以发送using Windows Media SpeechRecognition args Result Text作为参数来自UWP to Console应用 例如 通过以下我发送的场景TextToSpeech args R
  • 在javascript中使用特殊字符访问json键[重复]

    这个问题在这里已经有答案了 我有一个看起来像这样的对象 response mydata xxx id 8c8b9703 bc87 40d8 b8d7 f71ebff4002a Description Tsameple desc 现在 我的问
  • pandas.crosstab 中缺少数据

    我正在用 pandas 制作一些交叉表 a np array foo foo foo bar bar foo foo dtype object b np array one one two one two two two dtype obj
  • 在 hibernate 中将多个集合映射到一张表中

    我有一个User an a Log类 我无法更改 class User private long id private String name private Set
  • Python:切片多维数组

    我知道如何切片一维序列 arr start end 并访问数组中的一个元素 el arr row col 现在 我正在尝试类似的事情slice arr 0 2 0 2 where arr是一个 numpy 数组 但它没有给我前 2 行和列
  • 我可以将继承与扩展方法一起使用吗?

    我有以下内容 public static class CityStatusExt public static string D2 this CityStatus key return int key ToString D2 public s
  • Microsoft Graph API:无法列出会议室的重复事件

    我正在构建一个 Ruby on Rails 应用程序 其中使用 Microsoft Graph API 和以下链接中描述的仅应用程序授权流程 对组织内的事件进行分组并由会议室显示 http graph microsoft io docs a
  • 为什么我在运行 Docker Desktop 时收到“0/1 个节点可用”?

    我正在使用 Kubernetes 运行 Docker Desktop 我可以通过 ssh 连接到该节点 并且该节点上正在运行其他 pod 但是 当我将 StatefulSet 应用于集群时 我得到 0 1 nodes are availab
  • 在 VS Designer 上使用 Form(Of T)

    我正在使用 vb net vs2010 我正在将一些 winform 移动到 dll 中 我有一种继承自具有一些子项和功能 如测试应用程序 的表单 我的原始形式是 designer Partial Class Form1 Of T Inhe
  • C 中的逻辑相等

    这似乎很奇怪 它不存在 所以如果它是重复的 请提前道歉 我想测试 C 中的逻辑相等性 换句话说 我想知道如果两个值都以与逻辑表达式相关的正常方式转换 它们是否相等 在C99中 我认为 bool a bool b 给出我想要的 那是对的吗 用
  • 在 Flutter 中结合 SingleChildScrollView 和 PageView

    我创建了两个表单 并将它们添加到 PageView 中 每个表单有 6 个 TextFormField 当我点击最后 2 个 TextFormField 时 键盘会显示在这些字段上方并隐藏它们 我需要的是 当我点击每个字段并且键盘可见时 向
  • 如何使用Python requests 库发出post 请求?

    我在 Postman 中使用以下过滤器在 Web API 中发出 POST 请求 但无法使用 requests 库在 Python 中发出简单的 POST 请求 First 我正在向此 URL 发送 POST 请求 http 10 61 2
  • Python - Zelle书使用eval(),是错误的吗?

    请注意 这不是关于 eval 的使用 而是关于使用和教授它的书籍的潜在质量 或缺乏质量 因此 Python 中已经有无数关于 eval 的线程 冒着招致SO的愤怒和反对票的风险 我还是决定问这个问题 以防万一 请多多包涵 我已经尝试过谷歌和
  • 使用 SOAP Web 服务时出现“未找到操作标头”错误消息

    在 iOS 应用程序中使用 SOAP Web 服务时出现以下错误 No Action header was found with namespace http www w3 org 2005 08 addressing for the gi