node-soap只向Mechanical Turk发送“帮助”请求?

时间:2016-05-27 21:36:33

标签: node.js amazon-web-services soap mechanicalturk node-soap

我正在尝试使用node-soap与Amazon Mechanical Turk进行通信。我使用this wsdl初始化soap客户端,但当我尝试为any of the operations listed in the Mechanical turk API调用client.<SomeOperation>(...)时,我发现我收到的响应中没有包含API调用的结果。 The API documentation says that the response should contain a "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>

经过进一步调查,我发现当我尝试使用它来发出API请求时,问题出在node-soap发送的内容中。当我尝试拨打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?

1 个答案:

答案 0 :(得分:0)

我发现node-soap可能有bug。

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

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