c# - 将 Json Content-Type 传递给 application/x-www-form-urlencoded POST REQUEST API C#
问题描述
我有一个通过 RestSharp 发送 json 连接到的端点,它对我来说正常工作是这样的:
public void GetToken()
{
var client = new RestClient("UrlEndpoint");
var req = new RestRequest(Method.POST);
req.AddHeader("Content-Type", "application/json");
req.AddParameter("application/json", JsonConvert.SerializeObject(new { user = "usuario", password = "password" }), ParameterType.RequestBody);
var res = client.Execute(req);
}
现在我需要使用另一个端点,但它的 Content-Type 是 application / x-www-form-urlencoded,我这样做了:
public void GetResponse()
{
var client = new RestClient("https://sdx-identityserver-qa.azurewebsites.net/connect/token");
var req = new RestRequest(Method.POST);
req.AddHeader("Content-Type", "application/x-www-form-urlencoded");
req.AddParameter("application/x-www-form-urlencoded", "client_id=sdx_corefin_pel&client_secret=8c6a56d2-bd3a-4e83-a578-cb78c6e66f19&grant_type=client_credentials", ParameterType.RequestBody);
var res = client.Execute(req);
}
但它向我抛出了一个状态码 0 和一个错误:“无法将数据写入传输连接:现有连接被远程主机强制中断。”
我也试过这个:
public void GetResponse()
{
var client = new RestClient("https://sdx-identityserver-qa.azurewebsites.net/connect/token");
var req = new RestRequest(Method.POST);
req.AddHeader("Content-Type", "application/x-www-form-urlencoded");
req.AddParameter("client_id", "sdx_corefin_pel");
req.AddParameter("client_secret", "8c6a56d2-bd3a-4e83-a578-cb78c6e66f19");
req.AddParameter("grant_type", "client_credentials");
var res = client.Execute(req);
}
但答案是同样的错误,
在邮递员中效果很好:
我已经添加了变量“范围”,但它也不起作用,我在每个 req.AddParameter、ParameterType.GetOrPost 中添加了但答案是一样的。
谢谢你的帮助。
解决方案
推荐阅读
- vue.js - vuejs SPA 应用程序和预渲染指南(+ 站点地图)
- android - 小吃店的自定义幻灯片动画
- java - pdfbox 以什么顺序解析 pdf 文件?(假设一页多于 1 列)
- css - 如何在此 div 容器中居中此文本
- android - 如何从appium android中的下拉TextBox中查找元素
- mysql - How can I check if the same ID has different values in different rows?
- javascript - 如果我们想将数据从一个组件传递到另一个组件,如何使用 react-compose?
- php - 在 Chart.JS 中显示 SQL 数据
- c++ - 在类定义和静态数据使用之外定义私有成员函数
- java - 如何调用父类方法