首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >C# HttpClient.SendAsync导致错误,无法发送带有此谓词类型的内容体。

C# HttpClient.SendAsync导致错误,无法发送带有此谓词类型的内容体。
EN

Stack Overflow用户
提问于 2022-02-22 17:33:06
回答 1查看 1.4K关注 0票数 -1

我收到错误了,不能用这个动词类型的发送内容体。我正在从一个C# VSTO桌面应用程序调用一个GET端点。我做错什么了。

代码语言:javascript
代码运行次数:0
运行
复制
public static string GetCentralPath(LicenseMachineValidateRequestDTO licenseMachine)
{
    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Authorization =    new AuthenticationHeaderValue("Bearer", Properties.Settings.Default.Properties["JWT"].DefaultValue.ToString());
        var request = new HttpRequestMessage
        {
            Method = HttpMethod.Get,
            RequestUri = new Uri($"{Constants.URL.APIBase}licensemachine/GetCentralPath"),
            Content = new StringContent(JsonConvert.SerializeObject(licenseMachine), Encoding.UTF8, "application/json"),
        };
        
        using (HttpResponseMessage response = client.SendAsync(request).GetAwaiter().GetResult()) // Causing ERROR
        {
            var result = GetStringResultFromHttpResponseMessage(response, true);
            if (string.IsNullOrEmpty(result))
                return null;
            return JsonConvert.DeserializeObject<string>(result);
        }
    }
}

终点如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
[HttpGet("GetCentralPath")]
public async Task<IActionResult> GetCentralPath(LicenseMachineValidateRequestDTO dto)
{
    // Some code
}
EN

回答 1

Stack Overflow用户

发布于 2022-02-22 18:18:19

修复此操作,您不能用get发送正文数据,请参阅下面的HTTP GET with request body文章

代码语言:javascript
代码运行次数:0
运行
复制
[HttpPost("GetCentralPath")]
public async Task<IActionResult> GetCentralPath(LicenseMachineValidateRequestDTO dto)

和修复请求,用Post替换方法= HttpMethod.Get,这就是生成错误的原因

代码语言:javascript
代码运行次数:0
运行
复制
var request = new HttpRequestMessage
        {
            Method = HttpMethod.Post,
            RequestUri = new Uri($"{Constants.URL.APIBase}licensemachine/GetCentralPath"),
            Content = new StringContent(JsonConvert.SerializeObject(licenseMachine), Encoding.UTF8, "application/json"),
        };
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71225812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档