在wpf中使用默认浏览器发布

时间:2015-10-06 13:53:28

标签: c# asp.net wpf

我有一个应用程序,它使用wpf应用程序中的WebBrowser类模拟发布到具有发布数据的网页的帖子。

private void openBrowser(CreateDdiRequest postData)
    {
        string serialisedObject = serializeValues(postData);
        string postHeaders = "Content-Type: application/x-www-form-urlencoded";
        _browser.Navigate(new Uri(_url), "_blank", Encoding.UTF8.GetBytes(serialisedObject), postHeaders);
    }

这将打开IE Web浏览器并将发布数据推送到站点。 我现在遇到的问题是我希望它打开默认浏览器而不是IE。

无论如何要实现这个目标吗?

2 个答案:

答案 0 :(得分:0)

据我所知,将推出的浏览器并不总是默认浏览器。

请按照以下步骤操作:

  

1°取消Windows版本,您应该在开始菜单或Windows 8的设置中搜索“默认程序”。好吧,搜索计算机中的“默认程序”面板:)

     

2°输入默认程序,然后点击或单击默认程序。

     

3°点击或单击设置默认程序。

     

4°从程序列表中选择您的浏览器。正如您所知(可能)所见,浏览器并非每个可能操作的默认值(“该程序有20个默认值中的15个”)

     

5°点击或单击“将此程序设为默认值”,然后点击或单击“确定”。

如果它不起作用,请尝试按其路径启动浏览器:

  

的Process.Start(@ “%APPDATA%.. \本地\谷歌\铬\应用\的chrome.exe”,                 的 “http:\ www.YourUrl.com”);

当然,它适用于外部网址,可能不是您想要的。

顺便说一句,如果你只是想做一个POST请求,你就不需要webbrowser类了。

 using (var client = new HttpClient())
{
    var values = new Dictionary<string, string>
    {
       { "thing1", "hello" },
       { "thing2", "world" }
    };

    var content = new FormUrlEncodedContent(values);

    var response = await client.PostAsync("http://www.example.com/recepticle.aspx", content);

    var responseString = await response.Content.ReadAsStringAsync();
}

来源:

  

HTTP request with post

     

http://windows.microsoft.com/en-US/internet-explorer/make-ie-default-browser#ie=ie-11

     

How to launch a Google Chrome Tab with specific URL using C#

答案 1 :(得分:0)

要启动默认浏览器,只需致电Process.Start()并传递网址中的表单值。

Process.Start(myUrl)