Search code examples
c#postparametersawesomium

Awesomnium Post Parameters


currently i am working with Awsomnium 1.7 in the C# environment. I'm just using the Core and trying to define custom post parameters. Now, i googled a lot and i even posted at the awsomnium forums, but there was no answer. I understand the concept, but the recent changes just dropped the suggested mechanic and examples.

What i found: http://support.awesomium.com/kb/general-use/how-do-i-send-form-values-post-data

The problem with this is, that the WebView Class does not contain "OnResourceRequest" Event anymore. So far, i have implemented the IResourceInterceptor and have the "OnRequest"-Function overwritten public ResourceResponse OnRequest(ResourceRequest request) is the signature, but i have no chance to reach in there in order to add request headers. Anyone here any idea? I tried to look in the documentation, but i didn't find anything on that.....


Solution

  • You need to attach your IResourceInterceptor to WebCore, not WebView. Here's a working example:

    Resource interceptor:

    public class CustomResourceInterceptor : ResourceInterceptor
    {
        protected override ResourceResponse OnRequest(ResourceRequest request)
        {
            request.Method = "POST";
            var bytes = "Appending some text to the request";
            request.AppendUploadBytes(bytes, (uint) bytes.Length);
            request.AppendExtraHeader("custom-header", "this is a custom header");
    
            return null;
        }
    }
    

    Main application:

    public MainWindow()
    {
        WebCore.Started += WebCoreOnStarted;
        InitializeComponent();
    }
    
    private void WebCoreOnStarted(object sender, CoreStartEventArgs coreStartEventArgs)
    {
        var interceptor = new CustomResourceInterceptor();
    
        WebCore.ResourceInterceptor = interceptor;
        //webView is a WebControl on my UI, but you should be able to create your own WebView off WebCore
        webView.Source = new Uri("http://www.google.com");
    }