Stack Overflow em Português Asked on December 30, 2021
Sei fazer requisição utilizando o RestSharp quando o content-type = application/json
, agora preciso fazer uma requisição application/x-www-form-urlencoded
mas não consigo encontrar o modo correto de fazer isso, segue o um exemplo de como eu monto a requisiçãoapplication/json
:
var request = new RestRequest(Method.POST);
request.Resource = "/search";
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json; charset=utf-8");
request.AddParameter("application/json", JsonConvert.SerializeObject(new { bucketId = bucketID, startFileName = fileName, maxFileCount = maxFileCount }), ParameterType.RequestBody);
request.AddHeader("Authorization", authorize_account.authorizationToken);
A forma como eu passo o body quando se trata de JSON é essa, como faço quando se trata de x-www-form-urlencoded?
Uma outra maneira que eu descobri fora a resposta do @LINQ é adicionar a url no parâmetro application/x-www-form-urlencoded
escrevendo-a de forma manual :
var request = new RestRequest(Method.POST);
request.Resource = "/search";
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Accept-Version", "v1.0");
request.AddParameter("application/x-www-form-urlencoded", $"api_key={api.api_key}&access_key={api.access_key}×tamp={api.timestamp}&nonce={api.nonce}&algo=sha1&q=woman&lang=en&page=0&limit=100", ParameterType.RequestBody);
A diferença é a legibilidade, achei melhor utilizar o do @LINQ mesmo.
Answered by Leonardo Bonetti on December 30, 2021
É parecido.
Só precisa mudar o header e adicionar cada par chave-valor com o método AddParameter
.
request.AddHeader("content-type", "application/x-www-form-urlencoded");
//...
request.AddParameter("nome", "valor");
request.AddParameter("1_nome", "1_valor");
Answered by Jéf Bueno on December 30, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP