onlinerby/onliner-b2b-api

Как изменить только цену товара по его id каких входных нехватает почему json невалидный

belvision2 opened this issue · 1 comments

`var url = "https://b2bapi.onliner.by/pricelists"; // URL для обновления прайс-листа
var token = project.Variables["token"].Value; // Используем токен, полученный ранее, из переменной

// Формируем тело запроса для обновления только цены
var requestBody = @"
[
{
""id"": ""3104065001"", // ID вашего товара
""price"": ""10.5"", // Новая цена
""currency"": ""BYN"" // Валюта
}
]
";

var request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
request.Method = "PATCH";
request.Headers["Authorization"] = "Bearer " + token; // Используем Bearer токен для авторизации
request.Accept = "application/json"; // Устанавливаем заголовок Accept для ожидания JSON-ответа
request.ContentType = "application/json"; // Устанавливаем Content-Type для передачи данных в формате JSON

try
{
// Преобразуем тело запроса в байты и отправляем
using (var streamWriter = new System.IO.StreamWriter(request.GetRequestStream()))
{
streamWriter.Write(requestBody);
}

using (var response = (System.Net.HttpWebResponse)request.GetResponse())
using (var reader = new System.IO.StreamReader(response.GetResponseStream()))
{
    var responseBody = reader.ReadToEnd();
    project.SendInfoToLog($"Response Body: {responseBody}", true);

    // Сохраняем ответ для дальнейшего использования
    project.Variables["response"].Value = responseBody;
}

}
catch (System.Net.WebException ex)
{
if (ex.Response != null)
{
using (var reader = new System.IO.StreamReader(ex.Response.GetResponseStream()))
{
var errorResponse = reader.ReadToEnd();
project.SendErrorToLog($"Error: {ex.Message} - Response: {errorResponse}", true);
project.Variables["response"].Value = $"Error: {ex.Message} - Response: {errorResponse}";
}
}
else
{
project.SendErrorToLog($"Error: {ex.Message} - No response received.", true);
project.Variables["response"].Value = $"Error: {ex.Message} - No response received.";
}
}
`

Проверьте эту часть кода, кажется Вы используете комментарии внутри json строки, соответственно сам json будет не валидный.

var requestBody = @"
[
{
""id"": ""3104065001"", // ID вашего товара
""price"": ""10.5"", // Новая цена
""currency"": ""BYN"" // Валюта
}
]
";

Попробуйте так

var requestBody = @"
[
{
""id"": ""3104065001"",
""price"": ""10.5"",
""currency"": ""BYN""
}
]
";