[英]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.