我正在尝试使用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?
答案 0 :(得分:0)
我发现node-soap可能有bug。
请尝试使用'soap ui'自行调用Web服务,以确保此Web服务正常运行。 (在这里下载soap-ui https://www.soapui.org)
如果Web服务运行良好,则问题是node-soap lib。 您可以通过生成soap请求消息并直接调用服务来解决此问题。