我将如何在 vala 中创建 HTTPS 请求?

How would I create a HTTPS request in vala?

我正在尝试在 vala 中创建一个 github 问题应用程序,并且需要从 https://api.github.com/repos/vmg/redcarpet/issues?state=closed 获取问题列表。

我已尝试在我的代码中使用此示例,但这不适用于 SSL。 https://wiki.gnome.org/Projects/Vala/GIONetworkingSample

我也试过 soup 但这似乎有一个问题,它找不到它的开发者 headers。

如有任何帮助,我们将不胜感激。

您必须在 SocketClient 对象上将 tls 属性 设置为 true,并且 您必须连接到正确的端口 (443)。这对我有用:

var client = new SocketClient() { tls = true };
// Or do this (does the same):
// var client = new SocketClient();
// client.tls = true;
var socket = client.connect_to_host (hostname, 443);

如果您要连接的服务器使用的是自签名证书, 您还必须更改 TLS 验证标志: client.set_tls_validation_flags (...);

但正如另一位评论者指出的那样,使用 Soup 可能更容易。

祝你好运。瓦拉是一种甜美的语言。