Vala - 如何用汤创建HTTP请求?
问题描述:
我有点失落与Vala文档。 我试图用soap lib对我的AJAX服务做POST请求,但没有运气。任何人都可以告诉我我做错了什么?Vala - 如何用汤创建HTTP请求?
string url = "http://myservice/ajax.php";
// create an HTTP session
var session = new Soup.Session();
var message = new Soup.Message ("POST", url);
//Setting params and request
var params = "action=call&method=get_monuments";
Soup.MemoryUse buffer = Soup.MemoryUse.STATIC;
//(Error here - Line 73)
message.set_request ("application/x-www-form-urlencoded", buffer, params, params.length);
// send the HTTP request and wait for response
session.send_message (message);
stdout.write(message.response_body.data);
编译下降以下错误:
/home/ibsenleo/valaprojects/test/main.vala(73,73): Error: Argument 3: Cannot convert from `string' to `uint8[]'
我敢肯定是一些关于请求参数和数据类型,但我无法找到一些有用的例子。
答
Soup.Message.set_request
的第三个参数是uint8[]
,而不是string
,并且没有第四个参数。您可能需要像
message.set_request ("application/x-www-form-urlencoded", buffer, params.data);
请参阅string.data
。
+0
太棒了!那是关键。对一些人来说很明显,但对我来说有时候有点神秘。我开始在vala中编程,通常会迷失在文档中。非常感谢。 – ibsenleo
这不是C代码! – Olaf
错误消息非常明确。你有一个无法解决的类型错位。 – Olaf