具有查询参数的外部MTurk中的URL

时间:2017-12-12 13:08:58

标签: xml amazon-web-services xsd xsd-validation mechanicalturk

如果URL有两个或更多参数,如何为MTurk传递外部URL以创建外部问题。

前 -

<ExternalQuestion xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2006-07-14/ExternalQuestion.xsd">
<ExternalURL>https://s3.amazonaws.com/mturkexternalquestion/untitled.html?color=Red&product_asin=B0100RUSI6</ExternalURL>
<FrameHeight>800</FrameHeight>
</ExternalQuestion>

我正在获取上述外部URL的XML验证。但是如果我在URL中使用一个查询参数,它就可以正常工作。

1 个答案:

答案 0 :(得分:0)

这是因为你需要逃避&amp;参数(例如,&amp;)使其成为有效的XML。这是一个完整的Ruby代码示例,可以运行并演示:

require 'aws-sdk'

aws_access_key_id = 'YOUR_ACCESS_ID'
aws_secret_access_key = 'YOUR_SECRET_KEY'
endpoint = 'https://mturk-requester-sandbox.us-east-1.amazonaws.com'
region = 'us-east-1'

# Uncomment this line to use in production
# endpoint = 'https://mturk-requester.us-east-1.amazonaws.com'

#credentials = Aws::Credentials.new(aws_access_key_id, aws_secret_access_key)
mturk = Aws::MTurk::Client.new(endpoint: endpoint) #, credentials: credentials, region: region)

QUESTION = <<END
<ExternalQuestion xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2006-07-14/ExternalQuestion.xsd">
<ExternalURL>https://s3.amazonaws.com/mturkexternalquestion/untitled.html?color=Red&amp;product_asin=B0100RUSI6</ExternalURL>
<FrameHeight>800</FrameHeight>
</ExternalQuestion>
END

response = mturk.create_hit(title: "Example HIT", 
                            description: "Example HIT", 
                            lifetime_in_seconds: 60 * 60, 
                            assignment_duration_in_seconds: 60 * 5,
                            max_assignments: 1, 
                            reward: "0.25", 
                            question: QUESTION)

p "Your HIT is created. The HIT ID is #{response.hit.hit_id}"