繁体   English   中英

使用HTTP标头发送POST请求

[英]Sending POST request with HTTP headers

对此的新知识是学习Ruby中的API。 使用电子邮件服务的API在系统中创建用户。

这是POST的示例:

POST http://localhost:8080/core/postgres-pages-xy/api/rest/v4/user/create?email=user003@test.invalid HTTP/1.1
Authorization: Basic bWFzdGVyQGVuubXVjLmVjaXJjbGUuZGU6aDhuc3d1cnN0
User-Agent: curl/7.29.0
Host: localhost:8080
Proxy-Connection: Keep-Alive
Content-Type:application/json
Accept:application/json
Content-Length: 86

[{"name":"user.FirstName","value":"Stan"}, {"name":"user.LastName", "value":"Laurel"}]

我想我很近吗? 在Ruby中,希望有人告诉我如何发送身份验证。 系统要求登录标头(不确定该如何操作),将是电子邮件和密码:

    require 'uri'
require 'net/http'

uri = URI("https://site.com/api/rest/v4/user/create?email=ruby1@ruby.com")
https = Net::HTTP.new(uri.host, uri.port)


request = Net::HTTP::Post.new(uri.path)
request.basic_auth 'email', 'pass'

request["user.FirstName"] = 'Liam'
request["user.LastName"] = 'Coates'

response = https.request(request)
puts response

感谢您的反馈或学习。

您可以在URL中输入凭据:

url = "http://username:password@localhost:8080/core/postgres-pages-xy/api/rest/v4/user/create"

如果用户名和密码在那里,它应该自动执行HTTP基本身份验证( )。

但是,据说这已被弃用,因此有一个更长的解决方案:

req = Net::HTTP::Post.new(uri)
req.basic_auth 'user', 'pass'

res = Net::HTTP.start(uri.hostname, uri.port) {|http|
  http.request(req)
}
puts res.body

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM