C# веб-запросов, взаимодействующих с LXD - PullRequest
0 голосов
/ 26 января 2020

Я пытаюсь связаться с LXD API с C#. В командной строке я могу использовать

curl -s -k --cert lxd.crt --key lxd.key https://127.0.0.1:40/1.0/endpoint

для связи с API. Я собираюсь сделать это полностью в C#.

Каков наилучший способ сделать такой запрос? Или было бы лучше использовать / сделать оболочку cURL?

1 Ответ

0 голосов
/ 26 января 2020

Решено, это можно сделать с помощью RestSharp:

    RestClient client;
    public API()
    {
        client = new RestClient("https://127.0.0.1:40/");

        ServicePointManager.Expect100Continue = true;
        ServicePointManager.DefaultConnectionLimit = 9999;
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;
        ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;

        var certFile = "lxd.pfx";
        X509Certificate2 cert = new X509Certificate2(certFile, "(password)");
        client.ClientCertificates = new X509CertificateCollection() { cert };
        client.Proxy = new WebProxy();
    }

    public void Test()
    {
        var restrequest = new RestRequest("1.0/networks", Method.GET);
        IRestResponse response = client.Execute(restrequest);
        Logging.Log(response.Content, "API", LogLevel.INFO);
    }
...