java - Mechanical Turk 拒绝 POST 请求

标签 java rest mechanicalturk

我正在尝试使用 MTurk Restful API,并使用 POST 来使用 HITTypeID 创建HIT,但是,我收到以下错误:

<?xml version="1.0"?>
<CreateHITResponse>
  <OperationRequest>
    <RequestId>199c9aff-86a4-4280-8d2f-d956a53515b0</RequestId>
  </OperationRequest>
  <HIT>
    <Request>
      <IsValid>False</IsValid>
      <Errors>
        <Error>
          <Code>AWS.MissingParameters</Code>
          <Message>Your request is missing required parameters. Required parameters include Question. Question is a required parameter. (1376962818123)</Message>
          <Data>
            <Key>Parameter</Key>
            <Value>Question</Value>
          </Data>
          <Data>
            <Key>Description</Key>
           <Value>Question is a required parameter</Value>
          </Data>
          <Data>
            <Key>Description</Key>
            <Value>Question is a required parameter</Value>
          </Data>
          <Data>
            <Key>Parameter</Key>
            <Value>Question</Value>
          </Data>
        </Error>
      </Errors>
    </Request>
  </HIT>
</CreateHITResponse>

根据我的理解,如果给出了 Hittype,则不需要标题。所以看起来 API 并没有真正查看 POST 正文。

我该如何解决这个问题?我的要求有问题吗?

请求:

<CreateHITRequest>
  <HITTypeId>HITTYPEID</HITTypeId>
  <MaxAssignments>1</MaxAssignments>
  <LifetimeInSeconds>604800</LifetimeInSeconds>
  <Question>&lt;QuestionForm Structure&gt;</Question>
</CreateHITRequest>

最佳答案

您无法通过 REST 将 XML 发布到 Mechanical Turk。在我看来,您似乎将 REST 与 SOAP 混淆了。

Mechanical Turk 的 REST 接口(interface)仅采用 URL 编码的键值对,like this :

https://mechanicalturk.amazonaws.com/?Service=AWSMechanicalTurkRequester
&AWSAccessKeyId=[the Requester's Access Key ID]
&Version=2012-03-25
&Operation=CreateHIT
&Signature=[signature for this request]
&Timestamp=[your system's local time]
&HITTypeId=T100CN9P324W00EXAMPLE
&Question=[URL-encoded question data]
&LifetimeInSeconds=604800

关于java - Mechanical Turk 拒绝 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18325817/

相关文章:

java - 如何给maven项目添加依赖? (如何从外部jar文件中查找GroupID/ArtifactID)

python - FK select 的显示选项 - Django Rest Framework

java - 无法在 Spring boot 中反序列化嵌套对象 "Role"

mechanicalturk - 在外部网站上运行 MTurk HIT

node.js - 需要亚马逊 Mechanical Turk 资格测试

java - 在 Ubuntu 中设置 Java 变量

java - 没有可用类型的合格 bean

java - Glassfish:一个或多个Web片段以冲突的方式定义同一个Servlet,并且该Servlet未在web.xml中定义

java - 即使 Appnext SDK 不在 AndroidManifest.xml 中,它如何为其广告启动自己的 Activity ?

java - Spring Security 3.2 token 认证