【问题标题】:Trouble using HTTP POST with libsoup将 HTTP POST 与 libsoup 一起使用时遇到问题
【发布时间】:2014-08-20 12:43:08
【问题描述】:

我正在尝试使用 libsoup 登录到我的 tt-rss 服务器。从 1.5.3 版本开始,它只支持 HTTP POST 来接收数据。 基本上我只需要用 libsoup 做这样的事情:

curl -d '{"op":"login","user":"you","password":"xxx"}' http://example.dom/tt-rss/api/

但是所有使用 POST 在 vala 中编写的代码示例都已过时,不再编译。 例如本页最后一个,Transmission RPC Interface: https://wiki.gnome.org/Projects/Vala/JsonSample

这是我的代码:

var uri = "http://nas/tt-rss/api/";
var session = new Soup.Session ();
var message = new Soup.Message ("POST", uri);
var login = "{\"op\":\"login\",\"user\":\"USER\",\"password\":\"PASSWORD\"}";
message.set_request("", MemoryUse.COPY, login);
session.send_message (message); 
stdout.printf("%s \n", (string) message.response_body.flatten ().data);

我总是得到错误:

Argument 3: Cannot convert from `string' to `uint8[]'

提前感谢您的帮助

最好的问候, 一月

【问题讨论】:

    标签: rss vala


    【解决方案1】:

    Soup.Message.set_request 采用字节数组uint8[],而不是您提供的string。您可以使用.data 成员将string 转换为字节数组:

    message.set_request("", MemoryUse.COPY, login.data);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-20
      • 2021-07-15
      • 2013-06-19
      • 2014-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多