2

node-soapを使用して Amazon Mechanical Turk と通信しようとしています。この wsdlを使用して SOAPクライアントを初期化しましたが、Mechanical turk API にリストされている操作のいずれかをclient.<SomeOperation>(...)呼び出しようとすると、取得した応答に API 呼び出しの結果が含まれていないことがわかりました。API ドキュメントには、応答には「結果要素」を含める必要があると記載されていますが、代わりに、次のような役に立たない結果が得られることがわかりました。

<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 リクエストを作成しようとしたときに、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 の使用を検討する必要がありますか?

4

1 に答える 1

0

node-soap にバグがある可能性があることがわかりました。

「soap ui」を使用して自分で Web サービスを呼び出し、この Web サービスが正常に動作することを確認してください。(soap-ui のダウンロードはこちらhttps://www.soapui.org )

Web サービスがうまく機能する場合、問題は node-soap lib です。SOAP 要求メッセージを生成し、サービスを直接呼び出すことで回避できます。

于 2016-06-06T03:32:11.600 に答える