![](/img/trans.png)
[英]C# POST request works on POSTMAN but not on C# HttpWebRequest
[英]My POST request fails in c# but works perfectly fine in POSTMAN
我向本地安装在我的服务器上的 nextcloud 安装发出登录请求。 我传递了 3 个参数:requesttoken、密码、shareToken。 该请求在邮递员中运行良好,但在我的 C# 代码中失败。
我收到以下响应,并带有 412 状态代码。
"{\\"message\\":\\"CSRF 检查失败\\"}"
我复制粘贴了从我的邮递员请求派生的 c# 代码,如下所示。 有什么线索吗?
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);
你的帖子应该是这样的
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.