我试图模仿在Fedex.com上加载的POST请求,当他们正在加载包的跟踪信息时。
请求发布到的网址为https://www.fedex.com/trackingCal/track
并且它在请求中发送以获取完整JSON的数据是
#{"TrackPackagesRequest":{"appType":"wtrk","uniqueKey":"","processingParameters":{"anonymousTransaction":true,"clientId":"WTRK","returnDetailedErrors":true,"returnLocalizedDateTime":false},"trackingInfoList":[{"trackNumberInfo":{"trackingNumber":"61297641750622453544","trackingQualifier":"","trackingCarrier":""}}]}}
我的目标是在我的Rails应用程序中将跟踪号提供给此帖子请求并模仿网站正在做什么,点击端点并获取JSON或XML响应以在我的应用中解析和使用。
我不清楚如何做到这一点以及我迄今为止在net/http
和open-uri
工作所做的努力。
非常感谢任何帮助
答案 0 :(得分:1)
这是用于测试目的吗?如果是这样,请查看(https://github.com/vcr/vcr)您可以使用Webmock(https://github.com/bblimke/webmock)
答案 1 :(得分:-1)
希望这会对你有所帮助。 [未经测试]
require "net/http"
url = URI.parse("https://www.fedex.com/trackingCal/track")
args = {
"TrackPackagesRequest"= {
"appType"= "wtrk",
"uniqueKey"= "",
"processingParameters"= {
"anonymousTransaction"= true,
"clientId"= "WTRK",
"returnDetailedErrors"= true,
"returnLocalizedDateTime"= false
},
"trackingInfoList"= [
{
"trackNumberInfo"= {
"trackingNumber"= "61297641750622453544",
"trackingQualifier"= "",
"trackingCarrier"= ""
}
}
]
}
resp, data = Net::HTTP.post_form(url, args)
response = JSON.parse(data)
print response.inspect