var client = new HttpClient();
HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, "https://www.nseindia.com/option-chain");
httpRequestMessage.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
httpRequestMessage.Headers.Add("Accept", "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5");
httpRequestMessage.Headers.Add("Accept-Language", "en-us,en;q=0.5");
httpRequestMessage.Headers.Add("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
var response = await client.SendAsync(httpRequestMessage);
The above code is working in the .net console application but not working in the .net core console application. In .net core console application getting following error.
IOException: Unable to read data from the transport connection: The I/O operation has been aborted because of either a thread exit or an application request,
SocketException: The I/O operation has been aborted because of either a thread exit or an application request.
answers1
The reason is because of socket exhaustion.
The resolution is to use IHttpClientFactory to obtain the HttpClient object to make the calls.翻译:原因是因为套接字耗尽。 解决方案是使用 IHttpClientFactory 获取 HttpClient 对象以进行调用。
answers2
The error appears to indicate your main() which called the httpcliebt code without waiting for the async operation to complete and the program exited before the call completed.
翻译:该错误似乎表明您的 main() 调用了 httpcliebt 代码而不等待异步操作完成并且程序在调用完成之前退出。
answers3
These error can be due to port exhaustion due to not using HttpClient as recommended in the official docs.
翻译:这些错误可能是由于没有按照官方文档中的建议使用 HttpClient 而导致端口耗尽。
相关错误修复链接:
https://www.aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/
Make HTTP requests using IHttpClientFactory in ASP.NET Core | Microsoft Learn