Запрос содержит тело объекта, но не содержит заголовок Content-Type. Предполагаемый тип мультимедиа application / octet-stream не поддерживается для этого ресурса.

Я уже читал это Опубликовать, но не повезло.

Я использую RestShap v106.11.4.

public async static Task<ApiResponseBase<T>> ExecuteApiRequestAsync<T>(ApiRequestParameter parameter) where T : new()
{
        RestClient client = new RestClient(parameter.ApiBaseUrl);
        client.UseNewtonsoftJson();

        Method reqMethod = (Method)Enum.Parse(typeof(Method), parameter.HttpMethod.ToUpper());
        RestRequest request = new RestRequest(parameter.Resource, reqMethod);
        //request.AddHeader("Accept", "application/json"); // Also tried this too.No luck.

        if (parameter.RequireToken)
        {
            request.AddHeader("Authorization", $"bearer {parameter.BearerToken}");
        }

        if (!string.IsNullOrWhiteSpace(parameter.Body))
        {
            //request.AddJsonBody(parameter.Body);
            request.AddParameter("application/json", parameter.Body, ParameterType.RequestBody);
        }

        if ((reqMethod == Method.POST || reqMethod == Method.PUT)
                && (!string.IsNullOrWhiteSpace(parameter.FileName) && !string.IsNullOrWhiteSpace(parameter.FilePath)))
        {
            request.AddFile(parameter.FileName, parameter.FileName);
        }

        IRestResponse<ApiResponseBase<T>> response = await client.ExecuteAsync<ApiResponseBase<T>>(request);

        return response.Data;
}

Я получаю UnSupportedMediaType ошибку, если меняю глагол своего API с POST на GET. API отлично работает в Postman.

Заранее спасибо.


person Biju Kalanjoor    schedule 12.09.2020    source источник


Ответы (1)


Согласно Restsharp Documnetation

RequestBody не работает с запросами GET или HEAD, поскольку они не отправляют тело.

person Biju Kalanjoor    schedule 12.09.2020