Skip to main content
 首页 » 编程设计

c#之如何通过 C# WebClient 发送 HTTP DELETE 请求

2024年01月24日29小虾米

登录后,我可以从我的远程系统获得一个 token 。例如 authentication_token 是 8JySqFVx_pKx_3nx67AJ 我可以通过这个命令从终端注销

curl -v -H 'Content-Type: application/json' -H 'Accept: application/json' -X DELETE https://sample.com\?authentication_token\=8JySqFVx_pKx_3nx67AJ 

我需要从 C# 中完成。 我可以像这样发送 POST 请求:

        WebClient wc = new WebClient(); 
        string baseSiteString = wc.DownloadString("https://sample.com"); 
        string csrfToken = Regex.Match(baseSiteString, "<meta name=\"csrf-token\" content=\"(.*?)\" />").Groups[1].Value; 
        string cookie = wc.ResponseHeaders[HttpResponseHeader.SetCookie]; 
 
        wc.Headers.Add(HttpRequestHeader.Cookie, cookie); 
        wc.Headers.Add(HttpRequestHeader.ContentType, "application/json; charset=utf-8"); 
        wc.Headers.Add(HttpRequestHeader.Accept, "application/json, text/javascript, */*; q=0.01"); 
        wc.Headers.Add("X-CSRF-Token", csrfToken); 
        wc.Headers.Add("X-Requested-With", "XMLHttpRequest"); 
 
 
        string dataString  =  @"{""user"":{""email"":""sample@sample.com"",""password"":""sample_password""}}"; 
        byte[] dataBytes = Encoding.UTF8.GetBytes(dataString); 
        byte[] responseBytes = wc.UploadData(new Uri("https://sample.com/auth.json"), "POST", dataBytes); 
        string responseString = Encoding.UTF8.GetString(responseBytes); 

我如何从 C# 发送 DELETE 请求,其中 authentication_token 将是一个参数?

请您参考如下方法:

解决了,我用的是WebClient。

        var wc2 = new WebClient(); 
        string baseSiteString2 = wc2.DownloadString("https://sample.com"); 
        string csrfToken2 = Regex.Match(baseSiteString2, "<meta name=\"csrf-token\" content=\"(.*?)\" />").Groups[1].Value; 
        string cookie2 = wc2.ResponseHeaders[HttpResponseHeader.SetCookie]; 
 
        wc2.Headers.Add(HttpRequestHeader.Cookie, cookie2); 
        wc2.Headers.Add(HttpRequestHeader.ContentType, "application/json; charset=utf-8"); 
        wc2.Headers.Add(HttpRequestHeader.Accept, "application/json, text/javascript, */*; q=0.01"); 
        wc2.Headers.Add("X-CSRF-Token", csrfToken2); 
        wc2.Headers.Add("X-Requested-With", "XMLHttpRequest"); 
 
 
        string dataString2 = "";// @"{""name"":""Megan"",""regi_number"":4444}"; 
        byte[] dataBytes2 = Encoding.UTF8.GetBytes(dataString2); 
        string finalUrl = "https://sample.com?authentication_token=" + authentication_token; 
        byte[] responseBytes2 = wc2.UploadData(new Uri(finalUrl), "DELETE", dataBytes2); 
        string responseString2 = Encoding.UTF8.GetString(responseBytes2); 
        authentication_token = "";