HttpClient throws error using Rest services

I am trying to call several recreation services from the web API I created, and I get the following error when one of the Sharepoint break services is called

This instance has already launched one or more queries. Properties can only be changed before sending the first request.

Below is the code to call the rest of the services using HttpClient

try { var credential = new NetworkCredential(userName_SP, password_SP, domain_SP); var myCache = new CredentialCache(); myCache.Add(new Uri(core_URL), "NTLM", credential); var handler = new HttpClientHandler(); handler.AllowAutoRedirect = true; handler.Credentials = myCache; using (var client_sharePoint = new HttpClient(handler)) { var response = client_sharePoint.GetAsync(core_URL).Result; client_sharePoint.BaseAddress = uri; client_sharePoint.DefaultRequestHeaders.Accept.Clear(); client_sharePoint.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json")); var responsedata = await response.Content.ReadAsStringAsync(); var returnObj = JsonConvert.DeserializeObject<SharepointDTO.RootObject>( responsedata); return returnObj; } ... 

I have never encountered this error before. Can anyone suggest me if I need to set a timeout

+1
c # rest asp.net-web-api
source share
1 answer

Try the following:

 var credential = new NetworkCredential(userName_SP, password_SP, domain_SP); var myCache = new CredentialCache(); myCache.Add(new Uri(core_URL), "NTLM", credential); var handler = new HttpClientHandler(); handler.AllowAutoRedirect = true; handler.Credentials = myCache; using (var client_sharePoint = new HttpClient(handler)) { client_sharePoint.BaseAddress = uri; client_sharePoint.DefaultRequestHeaders.Accept.Clear(); client_sharePoint.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json")); var response = await client_sharePoint.GetAsync(core_URL); var responsedata = await response.Content.ReadAsStringAsync(); var returnObj = JsonConvert.DeserializeObject<SharepointDTO.RootObject>( responsedata); return returnObj; } 

Headers and BaseAddress must be set before executing the request using GetAsync . I also took the liberty of moving on. Try again from the time of the call. The result is bad practice, and I see that it is an async method.

You should also read the following: https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/

+2
source

All Articles