通常,使用requests框架执行post请求是由以下人员完成的:
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)
但是:如何连接到unix套接字而不是进行TCP连接?
在相关的说明中,如何在URL中编码域路径?
ldapi
,其中套接字名称在主机字段中进行了%编码httpie
在主机字段中使用http+unix
方案和%编码路径这些都是一些例子,但是否有一个RFC或既定的最佳实践?
没有必要重新发明轮子:
https://github.com/msabramo/requests-unixsocket
URL方案是
http+unix
,socket路径被百分比编码到主机字段中:可以使用^{} 创建TCP到UNIX的套接字代理,如下所示:
然后将您的http请求发送到该代理。在UNIX套接字
/tmp/foo.sock
上侦听的服务器仍然必须理解HTTP,因为socat
不执行任何消息转换。请求没有现成的unix套接字实现。
但是您可以创建自定义的adapter,它将连接到unix套接字,发送请求并读取应答。
所有需要实现的方法都是
.send()
和.close()
,这很简单。在会话对象中注册适配器后,可以在UNIX传输中使用请求机器。
相关问题 更多 >
编程相关推荐