RestSharp 发布请求

编程入门 行业动态 更新时间:2024-10-23 23:32:12
本文介绍了RestSharp 发布请求 - 带有 x-www-form-urlencoded 值的正文的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在使用邮递员并提出一个 api 发布请求,我在其中添加带有 x-www-form-urlencoded 键/值的正文,并且在邮递员中工作正常.

I am using postman and making an api post request where I am adding body with x-www-form-urlencoded key/values and it works fine in postman.

当我使用 RestSharp 包从 c# 尝试时出现问题.

The issue arrises when I try it from c# using RestSharp package.

我尝试了下面的代码,但没有得到响应.我收到BadRequest"invalid_client 错误.

I have tried the following code below but not getting the response. I get "BadRequest" invalid_client error.

public class ClientConfig { public string client_id { get; set; } = "value here"; public string grant_type { get; set; } = "value here"; public string client_secret { get; set; } = "value here"; public string scope { get; set; } = "value here"; public string response_type { get; set; } = "value here"; } public void GetResponse() { var client = new RestClient("api-url-here"); var req = new RestRequest("endpoint-here",Method.POST); var config = new ClientConfig();//values to pass in request req.AddHeader("Content-Type","application/x-www-form-urlencoded"); req.AddParameter("application/x-www-form-urlencoded",config,ParameterType.RequestBody); var res = client.Execute(req); return; } //Also tried this req.AddParameter("client_id",config.client_id,"application/x-www-form-urlencoded",ParameterType.RequestBody); req.AddParameter("grant_type",config.grant_type,"application/x-www-form-urlencoded",ParameterType.RequestBody); req.AddParameter("client_secret",config.client_secret,"application/x-www-form-urlencoded",ParameterType.RequestBody); req.AddParameter("scope",config.scope,ParameterType.RequestBody); req.AddParameter("response_type",config.response_type,"application/x-www-form-urlencoded",ParameterType.RequestBody); //tried this too var client = new RestClient("url-here"); var req = new RestRequest("endpointhere",Method.POST); var config = new ClientConfig(); req.AddBody(config); var res = client.Execute(req);

推荐答案

这个对我有用,它是 postman 的生成器

this working for me, it was generator from postman

var token = new TokenValidation() { app_id = CloudConfigurationManager.GetSetting("appId"), secret = CloudConfigurationManager.GetSetting("secret"), grant_type = CloudConfigurationManager.GetSetting("grant_type"), Username = CloudConfigurationManager.GetSetting("Username"), Password = CloudConfigurationManager.GetSetting("Password"), }; var client = new RestClient($"{xxx}{tokenEndPoint}"); var request = new RestRequest(Method.POST); request.AddHeader("content-type", "application/x-www-form-urlencoded"); request.AddParameter("application/x-www-form-urlencoded", $"app_id={token.app_id}&secret={token.secret}&grant_type={token.grant_type}&Username={token.Username}&Password={token.Password}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); if (response.StatusCode != HttpStatusCode.OK) { Console.WriteLine("Access Token cannot obtain, process terminate"); return null; } var tokenResponse = JsonConvert.DeserializeObject<TokenValidationResponse>(response.Content);

更多推荐

RestSharp 发布请求

本文发布于:2023-10-09 18:20:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1476427.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:RestSharp

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!