gpt4 book ai didi

c# - HttpResponseMessage.Content 为空

转载 作者:太空宇宙 更新时间:2023-11-03 14:56:16 27 4
gpt4 key购买 nike

我一直在开发移动应用程序的后端和前端,但在让我的帖子请求正常工作时遇到了问题。我一直在前端使用 Xamarin.Forms,在后端使用 .Net。

客户端代码:

var res = await App.Client.PostAsync("url", args);
var s =await res.Content.ReadAsStringAsync();
await DisplayAlert("Content", s, "OK");

我已经检查并收到了 HttpResponseMessage,但是当我尝试读取它时,Content Stream 始终为 null。我怀疑这是我在服务器端做错的事情。服务器端代码:

[MobileAppController,Authorize,RoutePrefix("api/SomeController")]
public class someController : ApController{

[HttpPost,Route("theRoute/{id}"),AllowAnonymous]
public HttpResponseMessage someFunction(args)
{
return new HttpResponseMessage(System.Net.HttpStatusCode.OK)
{
Content = new StringContent("Hello");
}
}
}

如果我改为使用 res.ToString() 显示响应,我会收到一条响应消息

StatusCode:200
ReasonPhrase:'OK'
Version:1.1
Content: System.Net.HttpStreamContent
Headers:{
Server: Microsoft-IIS/10.0
X-Powered-By:ASP.NET,
Date: Tue,20,Feb 2018 17:08:42 GMT,
Content-Length:4
Content-Type: application/json; charset=utf-8
}

我一直在试图找出为什么 Contentnull 但我无法弄清楚为什么。

编辑 1:App.Client 是整个移动应用程序使用的 HttpClient

在我的 app.xaml.cs 文件中:

static HttpClient client;

public static HttpClient Client
{
get
{
if (client == null)
{
client = new HttpClient();
}
return client;
}
}

最佳答案

尝试在应用程序响应类型上设置客户端 DefaultRequestHeaders。例如:

    client.DefaultRequestHeaders.Add("Accept", "application/json");

关于c# - HttpResponseMessage.Content 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48890776/

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