的数据
var client = new RestClient("https://seller.digikala.com/Account/Login");
var request = new RestRequest(Method.POST);
request.AddHeader("postman-token", "0e4d8dba-29da-0b26-1b43-1bf974e9b5de");
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/x-www-form-urlencoded");
IRestResponse response = client.Execute(request);
字符串
我可以发送请求成功,并登录到网站在 Postman ,但我不能这样做,在VS。这是我在VS中的代码:
var client = new RestClient("https://seller.digikala.com/Account/Login");
var request = new RestRequest(Method.POST);
request.AddParameter("IsPersistent", true, ParameterType.GetOrPost);
request.AddParameter("Password", "myPass", ParameterType.GetOrPost);
request.AddParameter("UserName", "myUsername", ParameterType.GetOrPost);
request.AddParameter("returnUrl", "/Account/Login", ParameterType.GetOrPost);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/x-www-form-urlencoded");
IRestResponse response = client.Execute(request);
型
但我在VS中收到“未授权”消息(401)
4条答案
按热度按时间lbsnaicq1#
你可以使用PostMan自动C#代码生成器
的数据
lskq00tm2#
我相信你的问题是,你添加的东西,应该是身体的一部分作为参数(根据截图从 Postman 显示这些项目作为身体的一部分)。这是未经测试的,但可能为您工作。
字符串
5n0oy7gb3#
您可能需要先对页面执行
GET
,然后在执行POST
时反射回GET期间收到的所有cookie(如果您的RestClient没有自动执行此操作)。登录页面通常会在GET期间添加一个cookie,并在POST期间期望该cookie阻止XSRF(这涉及到将相同的令牌作为表单的隐藏字段,尽管XSRF令牌显然不存在于Postman有效负载中)。一些基于cookie的sessionID过滤器甚至在您的请求到达登录控制器/中间件之前就阻止了您,这也不会让我感到惊讶。在任何情况下,首先执行GET,然后在POST中反映cookie应该可以工作。
fcipmucu4#
其他响应也很好,但如果您正在寻找一个比Postman的片段生成器功能更强大的工具,我创建了一个工具,它将为您生成整个ApiClient项目,为查询参数,请求,响应,表单数据等生成类。
它的功能非常广泛,除了一些复杂的身份验证类型外,当您下载项目时应该可以正常工作。
它是开源的,免费的,也可以在浏览器中运行(保护您的数据安全)。https://postman2csharp.com/Convert