【问题标题】:How to set the user-agent of an HTTP request using Gio?如何使用 Gio 设置 HTTP 请求的用户代理?
【发布时间】:2013-03-15 09:18:51
【问题描述】:

我正在尝试使用 Gio 执行异步 HTTP 请求,我想为我的请求设置一个自定义用户代理,但我找不到任何相关内容。

我正在使用 PyGObject 访问 Gio,但我当然可以使用 C 示例。

【问题讨论】:

    标签: python c gtk pygobject gio


    【解决方案1】:

    以下面https://live.gnome.org/Vala/GIONetworkingSample为例

    您需要将用户代理添加到请求的标头中。在上面的例子中,替换:

    var message = "GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n";
    

    与:

    var message = "GET / HTTP/1.1\r\nHost: www.google.com\r\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64)\r\n\r\n";
    

    这个想法在python中是一样的。有关 HTTP 请求格式的详细信息,请查看 HTTP 1.0 RFC 1945(第 5 章,第 23-25 页)。 User-Agent 头域在第 10.15 节中描述。​​

    【讨论】:

    • 嗯,谢谢,我会玩这个,但这意味着我必须手动重新实现整个 HTTP 请求功能......
    • 手动实现 HTTP 请求是我知道的唯一使用 GIO 的方法。如果您使用 Gio 或第三方库的任何其他功能来简化此操作,您应该发布指向它的链接。无论如何,想法是一样的:您只需要在 HTTP 请求中添加一个“User-Agent”标头,任何专门处理 HTTP 的库都允许您以某种方式执行此操作。如果没有,那就扔掉它;)
    最近更新 更多