Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#如何向REST Api发送身份验证请求_C#_Api_Rest_Cookies_Curl - Fatal编程技术网

c#如何向REST Api发送身份验证请求

c#如何向REST Api发送身份验证请求,c#,api,rest,cookies,curl,C#,Api,Rest,Cookies,Curl,我正在尝试制作一个(C#.net 4.5 winforms)应用程序,该应用程序需要从API获取Json。 我已经尝试和谷歌搜索了2天,现在没有运气 注意:我不想使用异步! 注意:它不必是WebClient 我所要做的就是这个有文档记录的卷曲请求: curl -k -d "username=<USERNAME>@<AUTHTYPE>&password=<PASS>" https://<URL>:<PORT>/api/json/

我正在尝试制作一个(C#.net 4.5 winforms)应用程序,该应用程序需要从API获取Json。 我已经尝试和谷歌搜索了2天,现在没有运气

注意:我不想使用异步! 注意:它不必是WebClient

我所要做的就是这个有文档记录的卷曲请求:

curl -k -d "username=<USERNAME>@<AUTHTYPE>&password=<PASS>"  https://<URL>:<PORT>/api/json/access/ticket 
{ "data": { 
  "CSRFPreventionToken":"4EEC61E2:lwk7od06fa1+DcPUwBTXCcndyAY",  
  "ticket":"User:4EEC61E2::rsKoApxDTLYPn6H3NNT6iP2mv...", 
  "username":"<USERNAME>"}
}
这是我的初始代码:

string result = "";
            var conn = "https://" + server.Hostname + ":" + server.Port + "/api2/json";
            var query = conn + "/access/ticket";
            var json = "";
            try
            {
                // Accept Self-Signed SSL Certificate
                ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
                // Get Json
                using (WebClient client = new WebClient())
                {
                    json = client.DownloadString(query);
                    result = json;
                }

            }
            catch (Exception e)
            {
                var BrPoint = e.ToString();
            }

            return result;
现在我需要用该请求发送身份验证(如curl请求),但是如何发送呢

当我有票时,我需要制作一个包含票的cookie来发送下一个请求


任何帮助都将不胜感激

它看起来很像,因为您使用DownloadString()方法调用执行Get请求,而不是使用UploadString()方法调用执行POST请求

尝试将其更改为UploadString(),并将以下内容作为数据参数传递:

username=<USERNAME>@<AUTHTYPE>&password=<PASS>
username=@&密码=

令人惊叹的作品!不过还是有一些问题!但这确实帮了大忙
username=<USERNAME>@<AUTHTYPE>&password=<PASS>