如何设置HttpClient PostAsync以调用新的Web浏览器

时间:2016-08-23 16:37:36

标签: c# asp.net webforms httpclient

我正在使用HttpClient PostAsync将数据发送到URI。但是,以下代码没有按预期运行:

        using (var client = new HttpClient())
            {
                var values = new Dictionary<string, string>
                {
                    {"cpm_site_id",TOKEN},
                    {"apikey",API_KEY},
                    {"cpm_amount",input.Amount},
                    {"cpm_currency",input.Currency},
                    {"cpm_trans_id",input.Id},
                    {"cpm_custom",input.Custom},
                };

                // Get the parameters in the url encoded format
                var content = new FormUrlEncodedContent(values);

                //Send request
                var response = await client.PostAsync(new Uri(Urls.GetUrl(Methods.Pay, IS_PRODUCTION_SITE)), content);

当客户端关闭浏览器时,我希望收到一个事件通知来调用此代码,将上述数据发送到客户端,然后打开一个新的浏览器实例以执行其他操作。但是,这段代码并没有实现这一点,我也不确定原因。

1 个答案:

答案 0 :(得分:0)

我认为您需要使用像Selenium这样的东西来自动化Web浏览器。 HttpClient可以执行HTTP功能,但不像Web浏览器那样工作。

请参阅此SO post for a 'hello world' example

SO post for an example of capturing the browser close event。我没有用C#做过这个,但我想它会和这个JAVA例子类似。