将POSTMAN请求转换为正确的请求

时间:2017-02-22 15:58:58

标签: ruby cq5 aem postman

我正在Ruby中编写一个脚本,用于向Adobe CQ CMS发布路径,包含和排除过滤器。我最初在使用请求发布过滤器时遇到问题。所以,我通过POSTMAN运行请求,在成功之后我复制了请求并在我的脚本中使用它。但是,因为它不是正确的做事方式。我正在寻找一些帮助将此POSTMAN请求转换为正确的请求。

这是功能:

def postFilter(postURL,excludeRule,includeRule, auth_code)
  url = URI(postURL)

  http = Net::HTTP.new(url.host, url.port)

  request = Net::HTTP::Post.new(url)
  request["content-type"] = "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW"
  request["authorization"] = "Basic YWRtaW46YWRtaW4="
  request["cache-control"] = "no-cache"
  request.body = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"rules\"\r\n\r\n#{excludeRule}\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"rules\"\r\n\r\n#{includeRule}\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--"

  response = http.request(request)
end

我还有另一个问题:现在密码是硬编码的(基本YWRtaW46YWRtaW4 =)。我尝试通过将密码作为争论传递给函数来消除这种情况,但它没有用。我无法弄清楚是否存在语义错误或逻辑错误。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

对于身份验证,您可以使用内置basic_auth方法的Ruby。

替换这个:

request["authorization"] = "Basic YWRtaW46YWRtaW4="

request.basic_auth(username, password)

在此处阅读https://ruby-doc.org/stdlib-2.4.0/libdoc/net/http/rdoc/Net/HTTP.html