ruby - 使用 Ruby HTTPClient 进行身份验证失败
问题描述
我有这个非常简单的 Ruby 代码,它发出 Ruby POST 请求。由于某种原因,它创建了 2 个请求 - 一个身份验证错误和一个成功请求:
def execute
request = HTTPClient.new()
request.ssl_config.verify_mode = OpenSSL::SSL::VERIFY_NONE
request.set_auth('https://test.net/api', 'user', 'pass')
request_body = File.read("requests/xml/req.xml")
response = request.post('https://test.net/api', request_body, {'Content-Type' => 'application/xml', 'cache-control' => 'no-cache'}).body
puts 'called'
end
我想如果 HTTPClient 缺少一些配置?
你能告诉我如何解决这个问题吗?
解决方案
这是预期的行为。除非需要,否则客户端不会发送凭据。当客户端获得 401 状态代码时,它会再次发送请求,但现在使用凭据。
您可以强制某些客户端在第一次请求时发送凭据。
Ruby 的 HTTPClientforce_basic_auth
可以做到这一点。
推荐阅读
- javascript - 将文本从文件转换为 javascript 对象
- c# - 在后台线程中运行全局鼠标钩子
- javascript - 如何构建长度转换器
- java - 当 Java 不在顶部时,JDialog 不专注于 OSX
- android - 在 Android 9 上禁用强制门户检查
- zabbix - Windows 上的 Zabbix 远程命令
- c# - AutoMapper:使用构造函数注入映射到目标类型(Prism、Unity、EntityFramework)
- python - 是否有一个函数(或更好的方法)使用 Pandas 中具有相似值的两列来聚合计数值的数量?
- streaming - 在 Apache Druid 中重新索引多个数据
- go - 匿名函数的参数错误 - 不是类型