当前位置: 首页 > 知识库问答 >
问题:

请求包含实体正文,但没有Content-Type标头。此资源不支持推断的媒体类型应用程序/octet-stream

潘皓
2023-03-14

我已经读过这篇文章,但运气不好。

我正在使用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;
}

如果我将API的动词从POST更改为GET,则会出现UnSupport dMediaType错误。该API在Postman中运行完美。

提前谢谢。

共有1个答案

鄂坚
2023-03-14

根据Restsharp文件

RequestBody不处理GET或HEAD请求,因为它们不发送正文。

 类似资料: