【发布时间】:2021-02-01 20:59:46
【问题描述】:
在我的微服务中,我调用了第三方 api。
https://sms.partname.in/mspProducerM/sendSMS?queryParam
它工作正常,但有时我收到以下错误。
SmsClient ? - Connection refused - System.Net.Http.HttpRequestException: Connection refused
---> System.Net.Sockets.SocketException (111): Connection refused
at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
我无法找出根本原因。我应该绕过证书吗? 代码:-
private static HttpClient _httpClient = new HttpClient();
public static async Task<string> SendAsync(Uri url)
{
try
{
string result = string.Empty;
using (var response = await _httpClient.GetAsync(url).ConfigureAwait(false))
{
if (response != null && response.StatusCode == System.Net.HttpStatusCode.OK)
{
result = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
}
}
return result;
}
catch (Exception ex)
{
_logger.LogError($"Error occurred while sending sms urlLink:{url}", ex);
throw;
}
}
【问题讨论】:
-
能否提供代码?
-
当然。更新了问题。
-
在浏览器中打开url可以用吗?
-
@MarkusMeyer 它正在工作,但我们每周都会收到此错误。
-
我猜如果行为是零星的,那是服务提供商的问题。