【问题标题】:How do I set up HttpClient PostAsync to call a new web browser如何设置 HttpClient PostAsync 以调用新的 Web 浏览器
【发布时间】:2016-12-30 14:23:28
【问题描述】:

我正在使用 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);

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

【问题讨论】:

  • 我对你在问什么感到困惑;您使用 HttpClient 将信息发布到 服务器,而不是在客户端执行某些操作。您发布的代码与您所说的尝试做的事情无关。
  • @EJoshuaS 我是否使用了错误的方法来实现我想要实现的目标?这样做的正确方法是什么?
  • 您能否为相关代码提供更多上下文?这段代码在哪里?你想给谁打电话?这是某种客户端-服务器应用程序还是驻留在 RESTful 服务或 ASP.NET 网站中?
  • @EJoshuaS 我正在尝试将数据发送到 uri
  • 是的,我可以看到,但是如果没有更多上下文信息,很难理解您要完成的工作。有问题的代码属于哪种应用程序?

标签: c# asp.net webforms httpclient


【解决方案1】:

我认为您需要使用 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 示例。

【讨论】:

    猜你喜欢
    • 2015-12-21
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    相关资源
    最近更新 更多