VMWare Workstation REST API - Как отправить PUT запрос?

Требуется написать программу, взаимодействующую с виртуальными машинами VMWare через API.

GET запросы отправляются корректно и приходит правильный ответ:

GET http://127.0.0.1:8697/api/vms =>

[
  {
    "id": "UCVPUUKT6F0KOCTU7COFUFDDEPTOG8UQ",
    "path": "C:\\Virtual\\Windows 10 and later x64.vmx"
  }
]

А вот с PUT запросом уже проблема:

PUT http://127.0.0.1:8697/api/vms/UCVPUUKT6F0KOCTU7COFUFDDEPTOG8UQ/power =>

{
  "Code": 9,
  "Message": "Content type not supported"
}

Формирование тела запроса:

var body = JObject.FromObject(new
{
    operation = "on"
}).ToString();

Код отправки запросов:

internal string BaseUrl = "http://127.0.0.1:8697/api/";

internal string MakeRequest(HttpMethod method, string route, string body = "")
{
    string content;
    try
    {
        HttpClientHandler httpClientHandler = new HttpClientHandler();
        HttpResponseMessage response = null;
        using (var client = new HttpClient(httpClientHandler))
        {
            string ur = $"{BaseUrl}{route}";
            var request = new HttpRequestMessage(method, ur);

            if (body != "") request.Content = new StringContent(body, Encoding.UTF8, "application/vnd.vmware.vmw.rest-v1+json");
            request.Headers.Add("Authorization", "Basic <-АВТОРИЗАЦИЯ->");
            request.Headers.Add("Accept", "application/vnd.vmware.vmw.rest-v1+json");

            client.Timeout = TimeSpan.FromSeconds(15);
            response = client.SendAsync(request).GetAwaiter().GetResult();

            content = response.Content.ReadAsStringAsync().Result;
        }
    }
    catch (Exception e)
    {
        return $"{e}";
    }

    return content;
}

За помощь в решении задачи готов предложить денежное вознаграждение, а то упёрся в тупик и не знаю что делать с этой проблемой. Технических ошибок я не наблюдаю. Думаю, что проблема в Content-Type тела запроса, но он правильный, исходя из документации. Если требуется ещё какая-либо информация о проблеме - отвечу. Заранее спасибо!


Ответы (0 шт):