gpt4 book ai didi

c# - ASP.Net Core API 访问 HttpRequestMessage

转载 作者:太空狗 更新时间:2023-10-30 01:14:35 27 4
gpt4 key购买 nike

我有一个 ASP.Net 4.5 应用程序,我正在尝试升级到 ASP.Net Core。此应用程序接收来自第 3 方应用程序的调用。

在我的旧应用程序中,我有一个看起来像这样的操作:

public async Task<HttpResponseMessage> RealTimeAsync(HttpRequestMessage request)
{
var StatusMessage = string.Empty;
try
{
var doc = new XmlDocument();
doc.Load(await request.Content.ReadAsStreamAsync());

从 4.5 开始工作正常。但是,当我在 ASP.Net 核心中使用此代码时,我收到“对象引用未设置为对象的实例”错误,因为 request.Content 为空。

进入两个应用程序(4.5 和 .Net Core)的请求是相同的。为什么我的 .Net Core 应用程序中的 request.Content 为空?

当我引用这篇文章时:ASP.NET Core HTTPRequestMessage returns strange JSON message

我尝试安装建议的 Nuget 包。但是,它与 .Net Core 不兼容:

error: Package Microsoft.AspNet.WebApi.Client 5.2.2 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Microsoft.AspNet.WebApi.Client 5.2.2 supports: error: - net45 (.NETFramework,Version=v4.5) error: - portable-net45+netcore45+wp8+wp81+wpa81 (.NETPortable,Version=v0.0,Profile=wp8+netcore45+net45+wp81+‌​wpa81) error: One or more packages are incompatible with .NETCoreApp,Version=v1.0.

最佳答案

该代码需要重构以使用更新的结构。

public Task<IActionResult> RealTimeAsync() {
var StatusMessage = string.Empty;
try {
var request = this.Request;
var doc = new XmlDocument();
doc.Load(request.Body); //request.Body returns a stream
//...other code...

关于c# - ASP.Net Core API 访问 HttpRequestMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42558918/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com