[英]How do i fix a "Request failed with status code BadRequest" RestSharp
[英]RestSharp + Xamarin - "Request failed with status code InternalServerError"
这段代码直到最近才正常工作。 现在它总是给出错误“请求失败,状态码为 InternalServerError”。
我在 Postman 中对其进行了测试,一切正常。 问题仅在我的应用程序中。
有谁知道为什么它可能会停止工作?
RestSharp 版本 107.3.0
var restClient = new RestClient($"{urlAcesso}?method={methodname}");
var request = new RestRequest();
request.AddOrUpdateHeader("accessKey", accessKey);
request.AddParameter("usuario", EncryptDecrypt.Encrypt(jsonparameters.usuario), ParameterType.GetOrPost);
request.AddParameter("dispositivoId", EncryptDecrypt.Encrypt(jsonparameters.dispositivoId), ParameterType.GetOrPost);
request.AddParameter("session", EncryptDecrypt.Encrypt(jsonparameters.session), ParameterType.GetOrPost);
request.AddParameter("id", EncryptDecrypt.Encrypt(jsonparameters.id.ToString()), ParameterType.GetOrPost);
request.AddParameter("idApp", EncryptDecrypt.Encrypt(jsonparameters.idApp.ToString()), ParameterType.GetOrPost);
request.AddParameter("qtdImagens", EncryptDecrypt.Encrypt(jsonparameters.qtdeImagens.ToString()), ParameterType.GetOrPost);
if (!string.IsNullOrEmpty(image1)) request.AddFile("fileImagem_1", await File.ReadAllBytesAsync(image1), Path.GetFileName(image1));
if (!string.IsNullOrEmpty(image2)) request.AddFile("fileImagem_2", await File.ReadAllBytesAsync(image2), Path.GetFileName(image2));
if (!string.IsNullOrEmpty(image3)) request.AddFile("fileImagem_3", await File.ReadAllBytesAsync(image3), Path.GetFileName(image3));
var response = await restClient.PostAsync(request).ConfigureAwait(false);
这是 OLD 代码,在 106.15.0 版之前仍然有效,但与 107.3.0 不兼容。
var restClient = new RestClient($"{urlAcesso}?method={methodname}");
var request = new RestRequest(Method.POST);
request.AddHeader("accessKey", accessKey);
request.AddParameter("usuario", EncryptDecrypt.Encrypt(jsonparameters.usuario), ParameterType.GetOrPost);
request.AddParameter("dispositivoId", EncryptDecrypt.Encrypt(jsonparameters.dispositivoId), ParameterType.GetOrPost);
request.AddParameter("session", EncryptDecrypt.Encrypt(jsonparameters.session), ParameterType.GetOrPost);
request.AddParameter("id", EncryptDecrypt.Encrypt(jsonparameters.id.ToString()), ParameterType.GetOrPost);
request.AddParameter("idApp", EncryptDecrypt.Encrypt(jsonparameters.idApp.ToString()), ParameterType.GetOrPost);
request.AddParameter("qtdImagens", EncryptDecrypt.Encrypt(jsonparameters.qtdeImagens.ToString()), ParameterType.GetOrPost);
if (!string.IsNullOrEmpty(image1)) request.AddFileBytes("fileImagem_1", await File.ReadAllBytesAsync(image1), Path.GetFileName(image1));
if (!string.IsNullOrEmpty(image2)) request.AddFileBytes("fileImagem_2", await File.ReadAllBytesAsync(image2), Path.GetFileName(image2));
if (!string.IsNullOrEmpty(image3)) request.AddFileBytes("fileImagem_3", await File.ReadAllBytesAsync(image3), Path.GetFileName(image3));
var response = await restClient.ExecuteAsync(request).ConfigureAwait(false);
唯一的区别是:从
var request = new RestRequest(Method.POST)
var response = await restClient.ExecuteAsync(request).ConfigureAwait(false);
至
var request = new RestRequest();
response = await restClient.PostAsync(request).ConfigureAwait(false);
也许试试这个结构?
var сlient = new RestClient(url);
var restRequest = new RestRequest(method);
... your params
restRequest.AddStringBody(inputJson, ContentType.Json);
var result = client.PostAsync(request).GetAwaiter().GetResult();
这对我有用。 也许这篇关于更新的文章https://restsharp.dev/v107/#restsharp-v107会帮助你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.