简体   繁体   English

我的 POST 请求在 c# 中失败,但在 POSTMAN 中运行良好

[英]My POST request fails in c# but works perfectly fine in POSTMAN

I make a login request to a nextcloud installation installed locally on my server.我向本地安装在我的服务器上的 nextcloud 安装发出登录请求。 I pass 3 parameters: requesttoken, password, shareToken.我传递了 3 个参数:requesttoken、密码、shareToken。 The request works perfectly fine in postman but fails in my C# code.该请求在邮递员中运行良好,但在我的 C# 代码中失败。

I get the following reponse with a 412 status code.我收到以下响应,并带有 412 状态代码。

"{\\"message\\":\\"CSRF check failed\\"}" "{\\"message\\":\\"CSRF 检查失败\\"}"

I copy pasted the c# code derived from my postman request which is like below.我复制粘贴了从我的邮递员请求派生的 c# 代码,如下所示。 Any clues?有什么线索吗?

    var client = new RestClient("https://nextcloud.xxxx.org/index.php/s/Sryt58drbe34/authenticate/showShare");
    var request = new RestRequest(Method.POST);
    request.AddHeader("Cache-Control", "no-cache");
    request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
    request.AddParameter("undefined", "requesttoken=oq%2Fqo4Nx0eNvYyty5QNeJqPbjZxMCtn3bFvUfEi%2Fwcg%3D%3AlOWrxPECsptWMBwGnTYMQ%2FG3yPENe7iQQwz7EQOLmYA%3D&password=bb9AYoqWSmAxiCgvFusW&sharingToken=Sryt58drbe34", ParameterType.RequestBody);

    IRestResponse response = client.Execute(request);

Your post should be something like this你的帖子应该是这样的

var uri = "https://nextcloud.xxxx.org/index.php/s/Sryt58drbe34/authenticate/showShare"
var requestToken= "oq/qo4Nx0eNvYyty5QNeJqPbjZxMCtn3bFvUfEi/wcg=:lOWrxPECsptWMBwGnTYMQ/G3yPENe7iQQwz7EQOLmYA=";
var password = "bb9AYoqWSmAxiCgvFusW";
var shareToken = "Sryt58drbe34";

var formContent = new FormUrlEncodedContent(new[]
{
    new KeyValuePair<string, string>("requesttoken", requestToken), 
    new KeyValuePair<string, string>("password", password ),
    new KeyValuePair<string, string>("sharetoken ", shareToken )
});

var myHttpClient = new HttpClient();
var response = await myHttpClient.PostAsync(uri.ToString(), formContent);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 C# POST 请求适用于 POSTMAN 但不适用于 C# HttpWebRequest - C# POST request works on POSTMAN but not on C# HttpWebRequest c# asp .net core HTTP POST 请求适用于 Postman,但不适用于我的 Angular 客户端(404 错误) - c# asp .net core HTTP POST Request works with Postman but not with my angular client(404 error) HttpClient post 在 C# 中返回错误的请求,在邮递员中工作 - HttpClient post returns bad request in c#, works in postman 休息客户端发布请求适用于邮递员,但不适用于 C# 代码 - Rest client post request works in postman but not in c# code HttpClient 后调用适用于邮递员,但不适用于 C# - HttpClient post call works on postman but not C# Http post 在 Postman 中有效,但在带有 HttpClient 的 C# 中无效 - Http post works in Postman but not in C# with HttpClient Json Post在Postman中工作,但不在C#中工作 - Json Post works in Postman but not in C# HTTP 请求在 Postman 中有效,但在 C# 代码中无效 - HTTP Request works in Postman, but not in C# code NetSuite OAUTH1 POST 请求在 Postman 中有效,但在 Restsharp 中失败 - NetSuite OAUTH1 POST request works in Postman but fails in Restsharp 如何在 C# 中复制 Postman POST 请求 - How to replicate Postman POST request in C#
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM