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 тела запроса, но он правильный, исходя из документации. Если требуется ещё какая-либо информация о проблеме - отвечу.
Заранее спасибо!