У меня проблема, очень похожая на эту https://magento.stackexchange.com/questions/296098/unable-to-get-stock-item-via-rest-api. Я использую Restsharp для создания json запроса к magento 2 Rest api. Это работает для большинства моих товаров, но некоторые содержат символы ie # 12654.
Для этих предметов Restsharp возвращает неверный запрос. Я создаю запрос, как показано ниже. # 12654 действует в M2, но в чванстве magento 2 символ ha sh преобразуется в% 23 при выполнении запроса. Кто-нибудь знает, как правильно кодировать символ ha sh, чтобы magento api мог его прочитать?
private RestClient Client { get; set; }
private string Token { get; set; }
public Rest(string magentoUrl, string token)
{
Token = token;
Client = new RestClient(magentoUrl);
}
private RestRequest CreateRequest(string endPoint, Method method, string token)
{
var request = new RestRequest(endPoint, method);
request.RequestFormat = DataFormat.Json;
request.AddHeader("Authorization", "Bearer " + token);
request.AddHeader("Content-Type", "application/json; charset=utf-8");
request.AddHeader("Accept", "application/json");
return request;
}
public void GetSku(string sku)
{
var request = CreateRequest("/rest/all/V1/products/" + sku, Method.GET, Token);
var response = Client.Execute(request);
//Update Product with current Price & stock level
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
do stuff.
}
else
{
var tmp = ":( " + response.Content;
}
}