更改webkit-sharp上的代理设置为mono

时间:2012-11-05 12:29:18

标签: c# proxy mono webkit browser

我是Mono开发的新手,并且一直在尝试创建一个小应用程序(没有工具栏,没有url输入字段),打开一个固定的URL并向用户显示页面,我能够通过以下方式实现互联网上的一些教程(我在这个网站上找到的基本想法:http://mapopa.blogspot.com.br/2011/05/webkit-based-webbrowser-written-in-mono_29.html)。

现在我想知道是否有办法为这个组件设置代理设置(来自webkit-sharp的webview),我一直在挖掘它的API并搜索到目前为止没有运气的文档,任何帮助真的很感激!

1 个答案:

答案 0 :(得分:0)

显然托管包装器不公开此功能。快速入侵后应该足以让你入门:

public class SoupSession
{
    [DllImport("webkit-1.0")]
    static extern IntPtr webkit_get_default_session();

    [DllImport("soup-2.4")]
    static extern IntPtr soup_uri_new(string uri);

    [DllImport("gobject-2.0")]
    static extern void g_object_set(IntPtr obj, string name, IntPtr value, IntPtr zero);

    public static void SetProxy(string uri)
    {
        IntPtr session = webkit_get_default_session();
        g_object_set(session, "proxy-uri", soup_uri_new(uri), IntPtr.Zero);
    }
}

请注意,为简洁起见,我省略了utf-8转换。如果需要,可以将其转换为正确的包装类。