将Postman代码转换为常规C#代码

mfpqipee  于 2023-08-05  发布在  Postman
关注(0)|答案(4)|浏览(307)


的数据

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)

lbsnaicq

lbsnaicq1#

你可以使用PostMan自动C#代码生成器


的数据

lskq00tm

lskq00tm2#

我相信你的问题是,你添加的东西,应该是身体的一部分作为参数(根据截图从 Postman 显示这些项目作为身体的一部分)。这是未经测试的,但可能为您工作。

var client = new RestClient("https://seller.digikala.com/Account/Login");
var request = new RestRequest(Method.POST);
request.AddBody(new
{
    IsPersistant = true,
    Password = "myPass",
    UserName = "myUsername",
    returnUrl = "/Account/Login"
});
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/x-www-form-urlencoded");
IRestResponse response = client.Execute(request);

字符串

5n0oy7gb

5n0oy7gb3#

您可能需要先对页面执行GET,然后在执行POST时反射回GET期间收到的所有cookie(如果您的RestClient没有自动执行此操作)。
登录页面通常会在GET期间添加一个cookie,并在POST期间期望该cookie阻止XSRF(这涉及到将相同的令牌作为表单的隐藏字段,尽管XSRF令牌显然不存在于Postman有效负载中)。一些基于cookie的sessionID过滤器甚至在您的请求到达登录控制器/中间件之前就阻止了您,这也不会让我感到惊讶。在任何情况下,首先执行GET,然后在POST中反映cookie应该可以工作。

fcipmucu

fcipmucu4#

其他响应也很好,但如果您正在寻找一个比Postman的片段生成器功能更强大的工具,我创建了一个工具,它将为您生成整个ApiClient项目,为查询参数,请求,响应,表单数据等生成类。
它的功能非常广泛,除了一些复杂的身份验证类型外,当您下载项目时应该可以正常工作。
它是开源的,免费的,也可以在浏览器中运行(保护您的数据安全)。https://postman2csharp.com/Convert

相关问题