Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Getting result of a task
Message
General information
Forum:
ASP.NET
Category:
Common Language Runtime
Environment versions
Environment:
C# 5.0
OS:
Windows 10
Database:
MS SQL Server
Miscellaneous
Thread ID:
01643645
Message ID:
01643892
Views:
75
If you're sending HTTP request synchronously I'd highly recommend you **don't** use HttpClient. Using the `.Result` property causes many issues and if you use it on a Web site you are very likely to lock up the application eventually when simultaneous requests are active hitting the same code.

I'd recommend you just use WebClient() or HttpWebRequst() for synchronous HTTP requests, or if you want to use HttpClient() make sure you use Async/Await which requires that your calling method is async. Depending on what you call this code from this may be very easy to accomplish (like in an MVC controller you can just add `async` to the controller method and return a task (public async Task<ActionResul> MyMethod()).

Whatever you do - stay away from using .Result with Async methods especially in Web applications - there are lots of issues there.

+++ Rick ---



>Hi everybody,
>
>I've defined the following method:
>
>
>static async Task<HttpResponseMessage> GetResponse(TicketUsageRequests ticket, string apiUrl)
>        {
>            HttpResponseMessage response = await client.PostAsJsonAsync(apiUrl, ticket);
>            //response.EnsureSuccessStatusCode();
>            
>            return response;
>        }
>
>My question is - how can I get its result in the main method code and synchronously?
>
>My current method is:
>
>
>try
>            {               
>                SetRequestHeaders(tcHost, tcUserName, tcPassword, tnTimeout, tnRetries);
>
>                TicketUsageRequests ticket = new TicketUsageRequests();
>                ticket.TicketBarcode = tcBarcode;
>                ticket.TicketUsageDate = tcUsageDate;
>                ticket.UserID = tcUserName;
>
>               ... here I want to get the result of the response and parse it
>
>   ...
>
>
>I found this
>
>http://stackoverflow.com/questions/5095183/how-would-i-run-an-async-taskt-method-synchronously
>
>and trying to figure out how to apply pixel's solution.
>
>Thanks in advance.
+++ Rick ---

West Wind Technologies
Maui, Hawaii

west-wind.com/
West Wind Message Board
Rick's Web Log
Markdown Monster
---
Making waves on the Web

Where do you want to surf today?
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform