简体   繁体   中英

How do I set up HttpClient PostAsync to call a new web browser

I am using HttpClient PostAsync to send data to a URI. However, the following code doesn't behave as expected:

        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);

When the client closes their browser, I want to receive an event notification to call this code, send the above data to the client, and open a new browser instance to perform additional actions. However, this code doesn't accomplish this and I'm not sure exactly why.

I think you'll need to use something like Selenium to automate a web browser. The HttpClient can perform HTTP functions, but does not work like a web browser does.

See this SO post for a 'hello world' example

See this SO post for an example of capturing the browser close event . I've not done this with C#, but I'd imagine it'll be similar to this JAVA example.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM