Articles of dotnet httpclient

Annullamento di una richiesta HttpClient – Perché TaskCanceledException.CancellationToken.IsCancellationRequested false?

Dato il seguente codice: var cts = new CancellationTokenSource(); try { // get a “hot” task var task = new HttpClient().GetAsync(“http://www.google.com”, cts.Token); // request cancellation cts.Cancel(); await task; // pass: Assert.Fail(“expected TaskCanceledException to be thrown”); } catch (TaskCanceledException ex) { // pass: Assert.IsTrue(cts.Token.IsCancellationRequested, “expected cancellation requested on original token”); // fail: Assert.IsTrue(ex.CancellationToken.IsCancellationRequested, “expected cancellation requested […]

Test delle unità / test di integrazione API Web con HttpClient in Visual Studio 2013

Sto avendo difficoltà a provare il mio controller API con Visual Studio 2013. La mia unica soluzione ha un progetto Web API e un progetto di test. Nel mio progetto di test, ho un test unitario con questo: [TestMethod] public void GetProduct() { HttpConfiguration config = new HttpConfiguration(); HttpServer _server = new HttpServer(config); var client […]

Passare più oggetti complessi in un metodo di postazione Web / post API

Alcuni possono aiutarmi a sapere come passare più oggetti da un’app console C # al controller API Web come mostrato di seguito? using (var httpClient = new System.Net.Http.HttpClient()) { httpClient.BaseAddress = new Uri(ConfigurationManager.AppSettings[“Url”]); httpClient.DefaultRequestHeaders.Accept.Clear(); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(“application/json”)); var response = httpClient.PutAsync(“api/process/StartProcessiong”, objectA, objectB); } Il mio metodo API Web è simile al seguente: public void StartProcessiong([FromBody]Content […]

HttpClient vs HttpWebRequest

Ho un file di grandi dimensioni che devo inviare a un client Web API … I dati sono in più parti. Il problema è, se il file viene inviato su richiesta web http, quindi viene caricato rapidamente sul webapi. Per questa richiesta, il contenuto del file viene scritto direttamente sul stream della richiesta. Dove lo […]

HttpClient: un’attività è stata cancellata?

Funziona bene quando una o due attività generano comunque un errore “Un’attività è stata annullata” quando sono elencate più attività. List allTasks = new List(); allTasks.Add(….); allTasks.Add(….); Task.WaitAll(allTasks.ToArray(), configuration.CancellationToken); private static Task HttpClientSendAsync(string url, object data, HttpMethod method, string contentType, CancellationToken token) { HttpRequestMessage httpRequestMessage = new HttpRequestMessage(method, url); HttpClient httpClient = new HttpClient(); httpClient.Timeout […]

Lottando cercando di ottenere cookie di risposta con HttpClient in. NET 4.5

Ho il seguente codice che funziona correttamente. Non riesco a capire come ottenere il cookie dalla risposta. Il mio objective è che voglio essere in grado di impostare i cookie nella richiesta e ottenere i cookie dalla risposta. Pensieri? private async Task Login(string username, string password) { try { string url = “http://app.agelessemail.com/account/login/”; Uri address […]

La chiamata asincrona con attesa in HttpClient non ritorna mai

Ho una chiamata che sto facendo da all’interno di un’applicazione Metro C# basata su xaml sul CP Win8; questa chiamata colpisce semplicemente un servizio web e restituisce i dati JSON. HttpMessageHandler handler = new HttpClientHandler(); HttpClient httpClient = new HttpClient(handler); httpClient.BaseAddress = new Uri(“http://192.168.1.101/api/”); var result = await httpClient.GetStreamAsync(“weeklyplan”); DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(WeeklyPlanData[])); return […]

Come posso sapere quando HttpClient è scaduto?

Per quanto posso dire, non c‘è modo di sapere che è specificamente un timeout che si è verificato. Non sto guardando nel posto giusto, o mi manca qualcosa di più grande? string baseAddress = “http://localhost:8080/”; var client = new HttpClient() { BaseAddress = new Uri(baseAddress), Timeout = TimeSpan.FromMilliseconds(1) }; try { var s = client.GetAsync(“”).Result; […]

HttpClient asincrono da .Net 4.5 è una scelta sbagliata per le applicazioni di carico intenso?

Di recente ho creato una semplice applicazione per testare il throughput delle chiamate HTTP che può essere generato in modo asincrono rispetto a un approccio multithread classico. L’applicazione è in grado di eseguire un numero predefinito di chiamate HTTP e alla fine visualizza il tempo totale necessario per eseguirle. Durante i miei test, tutte le […]

Nuovo tentativo di richieste HttpClient non riuscite

Sto costruendo una funzione che ha un object HttpContent, emetterà una richiesta e riproverò in caso di errore. Tuttavia ottengo eccezioni dicendo che HttpContent Object viene eliminato dopo l’emissione della richiesta. Esiste comunque la possibilità di copiare o duplicare l’object HttpContent in modo da poter inviare più richieste. public HttpResponseMessage ExecuteWithRetry(string url, HttpContent content) { […]