我遇到的问题是使用低级API 在C中专门打印出dbus方法调用的响应.我是C的libdbus新手,但在python-dbus上做了一些工作.
我设置代码的方式,python dbus守护进程运行我想要调用的方法.其中一些返回一个字符串.我想要一个C程序连接到会话总线,调用方法,打印出答复并退出.
这就是我目前所拥有的:
#include <stdio.h>
#include <dbus/dbus.h>
static void send_dbus_message (DBusConnection *connection, const char *msg)
{
DBusMessage *message;
//initialize the message
message = dbus_message_new_signal ("/org/example/foo/bar",
"org.example.foo.bar",
msg);
//send the message
dbus_connection_send (connection, message, NULL);
//deallocate the message
dbus_message_unref (message);
}
int main (int argc, char **argv)
{
DBusConnection *connection;
DBusError error;
//init error message
dbus_error_init (&error);
connection = dbus_bus_get (DBUS_BUS_SESSION, &error);
if (!connection)
{
printf ("Connection to D-BUS daemon failed: %s", error.message); …
Run Code Online (Sandbox Code Playgroud) 当我尝试调用cgi.FieldStorage()
一个python3.x
CGI脚本,我得到以下错误:
[Traceback: error in module x on line y]:
cgi.FieldStorage()
File "/usr/lib64/python3.3/cgi.py", line 553, in __init__
self.read_single()
File "/usr/lib64/python3.3/cgi.py", line 709, in read_single
self.read_binary()
File "/usr/lib64/python3.3/cgi.py", line 731, in read_binary
self.file.write(data)
TypeError: must be str, not bytes
Run Code Online (Sandbox Code Playgroud)
如何data
从 ajax 调用中获取我的 POST变量?
示例ajax调用:
function (param) {
$.ajax({
type: "POST",
url: "/cgi-bin/mycgi.py/TestMethod",
data: JSON.stringify({"foo": "bar"}),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
alert("Success " + result);
},
error: function () {
alert("Failed");
}
}); …
Run Code Online (Sandbox Code Playgroud)