Magento 2 Rest API с C# Restsharp не может получить товар, содержащий символы - PullRequest
0 голосов
/ 15 января 2020

У меня проблема, очень похожая на эту 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;
        }
    }
...