![](/img/trans.png)
[英]RestSharp client returns all properties as null when deserializing JSON response
[英]RestSharp returns no response
我有一個使用 RestSharp (v107.3.0) 的 ASP.NET Core 6 項目。
有時,我不知道頻率如何,幸運的是它不經常,無論 API 發送什么,庫都會返回空響應和 0 響應狀態碼。
這是我的代碼:
private async Task<T> CallApi<T>(myConfig config,
string suffixUrl,
Method method,
HttpStatusCode[] expectedResponses,
string bodyParameter = null)
{
Uri requestUrl = null;
string responseContent = null;
try
{
using (var client = new RestClient(_restClientOptions))
{
var request = new RestRequest(suffixUrl, method);
request.Timeout = 15000;
request.AddHeader("authorization", $"Basic {config.Auth}");
request.AddHeader("content-type", "application/json");
if (bodyParameter != null)
{
request.AddStringBody(bodyParameter, DataFormat.Json);
}
requestUrl = client.BuildUri(request);
var response = await client.ExecuteAsync(request);
// ->>>>>>> Sometimes response.Content equals null and response.statusCode = 0
responseContent = response.Content;
foreach (var expectedResponse in expectedResponses)
{
if (response.StatusCode == expectedResponse)
{
switch (expectedResponse)
{
default:
Logger.LogInformation("reponse :{0}", responseContent);
var obj = JObject.Parse(responseContent);
return obj.ToObject<T>();
}
}
}
Logger.LogWarning("Réponse innatendue lors d'un apel a l'api, Url={requestUrl}, BodyParameter={bodyParameter}, StatusCode={statusCode}, Reponse={Content}",
requestUrl, bodyParameter, response.StatusCode, responseContent);
}
}
catch (Exception ex)
{
//catch errors
Logger.LogError(ex, "Erreur lors d'un apel a l'api, url={requestUrl}, BodyParameter={bodyParameter}, responseContent={responseContent}",
requestUrl, bodyParameter, responseContent);
}
return default(T);
}
其他人是否已經有解決此問題的方法? 我的代碼有問題嗎?
謝謝你的幫助
我知道這不會是下一位讀者的完美答案,但就我而言,我決定刪除 Restsharp 庫並使用 HttpClient 進行調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.