Python Twisted 框架 HTTP 客户端

发布于 2024-09-19 14:54:55 字数 240 浏览 7 评论 0原文

我想用 Python 编写一个简单的 SSL HTTP 客户端,并且听说过 Twisted 框架。

我需要能够使用 REST 服务进行身份验证 - 所以我想我只需将用户名和密码发布到目标服务器即可。假设身份验证成功,客户端将收到一个 cookie。

基于 Twisted 构建的 HTTP 客户端是否会自动为每个后续请求重新发送 cookie 标头,还是我需要做一些特殊的事情?我以前从未使用过 Twisted。

谢谢

I want to write a simple SSL HTTP client in Python and have heard about the Twisted framework.

I need to be able to authenticate with a REST service - so I was thinking I'd just POST a user name and password to the target server. Assuming authentication is successful, the client will receive a cookie.

Will an HTTP client built on Twisted automatically resend the cookie header for each subsequent request, or do I need to do something special? I've never used Twisted before.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

呆橘 2024-09-26 14:55:44

基于 Twisted 构建的 HTTP 客户端是否会自动为每个后续请求重新发送 cookie 标头,还是我需要做一些特殊的事情?

“基于 Twisted 构建的 HTTP 客户端”将执行其构建的任何操作 - 就像构建在任何 Y 上的任何 X 都会执行其构建的任何操作一样。 :) 所以我可能会建议这不是您真正关心的问题的答案。

自 Twisted 11.1.0 起,twisted.web.client.CookieAgent< /a> 接受一个 cookieJar 参数,它有两件事:

  • 它定义可与请求一起发送的 cookie;
  • 它存储从服务器收到的新 cookie 的响应

。 a href="http://twistedmatrix.com/documents/current/api/twisted.web.client.getPage.html" rel="nofollow noreferrer">twisted.web.client.getPage 接受 cookies 参数的行为类似。

因此,如果您使用CookieAgent,那么 cookie 将被保留并随后续请求一起发送,从而提供您所需的身份验证行为。

您还可以使用 getPage 做一些事情,但考虑到它即将到来的厄运,您可能不应该这样做。

Will an HTTP client built on Twisted automatically resend the cookie header for each subsequent request, or do I need to do something special?

"an HTTP client built on Twisted" will do anything it is built to do - just like, presumably any X built on any Y will do whatever it was built to do. :) So I might suggest that this isn't the question you really care about the answer to.

Since Twisted 11.1.0, twisted.web.client.CookieAgent accepts a cookieJar argument which does two things:

  • it defines the cookies which are available to be sent with the requests
  • it stores new cookies received from servers in responses

The soon-to-be-deprecated twisted.web.client.getPage accepts a cookies argument behaves similarly.

So if you use CookieAgent then the cookie will be persisted and sent with subsequent requests, providing the authentication behavior you're after.

You could also do something with getPage but given its impending doom you probably shouldn't.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文