2

我正在尝试使用node-soap与 Amazon Mechanical Turk 进行通信。我用这个 wsdl初始化了 soap 客户端,但是当我尝试调用Mechanical turk API 中列出的任何操作时client.<SomeOperation>(...),我发现我得到的响应不包含 API 调用的结果。API 文档说响应应该包含一个 "Result element",但是我发现我得到了看起来像这样的无用结果:

<HelpResponse xmlns="http://requester.mturk.amazonaws.com/doc/2014-08-15">
    <OperationRequest>
        <RequestId>(something)</RequestId>
    </OperationRequest>
    <Information>
        <Request>
            <IsValid>True</IsValid>
        </Request>
        <OperationInformation>
            <Name>Please see our online documentation at http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=28</Name>
        </OperationInformation>
    </Information>
</HelpResponse>

经过进一步调查,我发现问题出在我尝试使用 node-soap 发出 API 请求时发送的内容。当我尝试调用时,比如说,RegisterHITType而不是发送一个<RegisterHITType>元素,它似乎发送了某种<Help>元素,看起来像这样:

<Help xmlns="http://requester.mturk.amazonaws.com/doc/2014-08-15">
    <Title>(something)</Title>
    <Description>(something)</Description>
    <Reward>(something)</Reward>
    <AssignmentDurationInSeconds>(something)</AssignmentDurationInSeconds>
    <AWSAccessKeyId>(something)</AWSAccessKeyId>
    <Timestamp>(something)</Timestamp>
    <Service>AWSMechanicalTurkRequester</Service>
    <Signature>(something)</Signature>
</Help>

为什么它发送这个而不是预期的 API 请求?这是故障的结果,还是我误解了如何使用 node-soap?有没有办法解决这个问题,还是我需要考虑通过其他方式使用 Mechanical Turk API?

4

1 回答 1

0

我发现 node-soap 可能有错误。

请尝试使用“soap ui”自行调用 Web 服务,以确保该 Web 服务正常工作。(在这里下载soap-ui https://www.soapui.org

如果 Web 服务运行良好,则问题出在 node-soap lib。您可以通过生成肥皂请求消息并直接调用服务来解决问题。

于 2016-06-06T03:32:11.600 回答