Asp.net web api 异常-“无法使用httpclient.sendasync发送此谓词类型的内容正文”

Asp.net web api 异常-“无法使用httpclient.sendasync发送此谓词类型的内容正文”,asp.net-web-api,asp.net-core-mvc,dotnet-httpclient,Asp.net Web Api,Asp.net Core Mvc,Dotnet Httpclient,已经尝试过搜索类似的问题,但这些问题无助于解决 脚本: 拥有一个Web客户端应用程序,该应用程序将Web API应用程序作为后端。如果从这个客户端调用同一个URI——Web API,则没有问题,但是当我试图从另一个WebAPI服务应用程序触发API请求时,会发生异常,比如说,这是一个单独的项目,用于访问使用Telerik Reporting作为服务运行的报告 代码: private async Task<HttpStatusCode> AccessService()

已经尝试过搜索类似的问题,但这些问题无助于解决

脚本: 拥有一个Web客户端应用程序,该应用程序将Web API应用程序作为后端。如果从这个客户端调用同一个URI——Web API,则没有问题,但是当我试图从另一个WebAPI服务应用程序触发API请求时,会发生异常,比如说,这是一个单独的项目,用于访问使用Telerik Reporting作为服务运行的报告

代码:

 private async Task<HttpStatusCode> AccessService()
        {
            HttpResponseMessage response = null;
            try
            {

                using (HttpRequestMessage request = new HttpRequestMessage()
                {
                    Content = new System.Net.Http.StringContent(JSONValues, System.Text.Encoding.UTF8, "application/json"),
                    RequestUri = new Uri(UriString),
                    Method = CallMethod
                })
                {

                   request.Headers.Authorization =  new AuthenticationHeaderValue("Bearer", Utils.Token) ;

                    response = await httpClient.SendAsync(request);

                    if (response.IsSuccessStatusCode)
                    {
                        string httpResponse = await response.Content.ReadAsStringAsync();

                            httpString = JsonConvert.DeserializeObject<string[]>(httpResponse);
                    }
                    ErrorCode = response.StatusCode;
                    response.Dispose();
                }
            }
            catch (Exception ex)
            {
                    Misc.Error= ex.Message;
            }
            finally
            {
                response.Dispose();
            }

            return ErrorCode;

        }
例外情况:

无法发送具有此谓词类型的内容正文

当我从客户端应用程序asp.net mvc访问同一个应用程序时,这可以正常工作,当我从Report Services API应用程序调用它时,就会出现问题。这是有关系的

编辑:

Web客户端项目是asp.net mvc core 2.1,因此我认为它在使用HttpClient.SendAsync的GET方法中的内容时可以工作,但出现此问题的Reports Services应用程序是targets.net 461

我强烈怀疑这可能是原因,因为.net framework不允许内容用于GET操作?有什么解决办法吗?


TIA根据提供的描述,如果使用get方法,get请求中通常没有正文。有关更多详细信息,请参阅以下解决方案:


谢谢,但已经检查过了。。。我已经有一个请求体sendWhen失败CallMethod的值是多少?@ToddMenier CallMethod是GET
  at System.Net.HttpWebRequest.CheckProtocol(Boolean onRequestStream)
   at System.Net.HttpWebRequest.BeginGetRequestStream(AsyncCallback callback, Object state)
   at System.Net.Http.HttpClientHandler.StartGettingRequestStream(RequestState state)
   at System.Net.Http.HttpClientHandler.PrepareAndStartContentUpload(RequestState state)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Net.Http.HttpClient.<FinishSendAsyncBuffered>d__58.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()