Существует внешний веб-сервис, который мне нужно отправить некоторые данные для создания устройства. Они используют чванство, и в чванстве, которое я могу протестировать, он работает, но когда я использую restsharp, он работает неправильно. Он не выдает никаких ошибок (возвращает 200 в качестве кода состояния), но не создает устройство. PS: метод GET Wwebservice работает, но сообщение не
вот завиток, когда я использую swagger
curl -X POST "website/keys/generate" -H "accept: application/json" -H "Authorization: Bearer blablablablablabla"
-H "Content-Type: application/json" -d "{\"deviceIds\":[\"10000000\"],\"keyNames\":[\"DeviceKey1\"],
\"externalReference\":\"ERD-1\"}"
как json, запрос должен быть
{
"deviceIds": [
"10000000"
],
"keyNames": [
"DeviceKey1"
],
"externalReference": "ERD-1"
}
и вот мой код
var request = new RestRequest(Method.POST);
request.AddHeader("accept", "application/json");
request.AddHeader("Content-Type", "application/json");
request.RequestFormat = DataFormat.Json;
request.AddParameter("deviceIds", deviceGenerationRequest.deviceIds.ToArray());
request.AddParameter("keyNames", deviceGenerationRequest.keyNames.ToArray());
request.AddParameter("externalReference", deviceGenerationRequest.externalReference);
var result = await _apiCaller.CallAPI(url, request);
а вот содержимое метода CallAPI
var client = new RestClient(url);
client.AddDefaultHeader("Authorization", "Bearer " + _token);
IRestResponse response;
response = await client.ExecuteGetAsync(request);
В чем моя ошибка?
Изменить :
вместо Restsharp, я использовал HttpWebResponse, и он работает
var query = JsonConvert.SerializeObject(deviceGenerationRequest);
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
httpWebRequest.Headers.Add("Authorization", "Bearer blabla");
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
streamWriter.Write(query);
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result3 = streamReader.ReadToEnd();
}