gpt4 book ai didi

ruby - 使用 httpclient 指定主机 header

转载 作者:太空宇宙 更新时间:2023-11-03 16:49:21 25 4
gpt4 key购买 nike

我在 ruby​​ 中使用 httpclient,我正在尝试弄清楚如何使用自定义主机 header 。

用例的一个例子是:- 测试系统还没有在 dns 中。- 我正在尝试通过 ip 获取 url,但我需要传递主机 header 。

我知道如果需要的话我可以破解我的主机文件,但是如果能够使用 httpclient 和 ruby​​ 来做到这一点就好了。

到目前为止的逻辑是这样的:

url = 'http://10.0.0.1'
res = HTTPClient.new
content = res.get(url, :follow_redirect => true)

非常感谢帮助。谢谢!

最佳答案

这可能有效:

res.get(url, nil, Host: 'arbitrary_host_here')

reference

测试

服务器代码:

# server.py
from flask import Flask
from flask import request

app = Flask(__name__)

@app.route('/')
def hello():
return ('headers: {}\n'.format(request.headers))

if __name__ == "__main__":
app.run(host='127.0.0.1', port=8088, debug=True)

客户端代码:

# client.rb
require 'httpclient'

url = 'http://127.0.0.1:8088'
res = HTTPClient.new
content = res.get(url, nil, Host: 'arbitrary_host_here')
puts content.body

使用 python server.py 启动服务器并使用 ruby client.rb 运行客户端。标准输出:

headers: User-Agent: HTTPClient/1.0 (2.8.3, ruby 2.5.0 (2017-12-25))
Date: Wed, 14 Mar 2018 14:49:22 GMT
Host: arbitrary_host_here
Accept: */*

关于ruby - 使用 httpclient 指定主机 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26070357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com