HttpResponseMessage.Content为null

问题描述 投票:2回答:1

我一直在处理移动应用程序的后端和前端,并且无法让我的帖子请求正常工作。我一直在使用Xamarin.Forms作为前端,而.Net作为后端。客户端的代码:

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

我已经检查过并且我收到了一个httpResponseMessage,但是当我尝试读取它时,内容流始终为空。我怀疑这是我在服务器端做错的事情。服务器端代码:

[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',版本:1.1,内容:System.Net.HttpStreamContent,标题:{服务器:Microsoft-IIS / 10.0 X-Powered-By:ASP.NET,日期:星期二,20,2月2018 17:08:42 GMT,Content-Length:4,Content-Type:application / json; charset = utf-8}

我一直试图找出为什么内容为空但我无法弄清楚为什么。

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

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

static HttpClient client;
public static HttpClient Client
    {
        get
        { 
            if(client==null){
                client = new HttpClient();
            }
            return client;
        }
    }
c# .net xamarin.forms httpresponsemessage
1个回答
0
投票

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

    client.DefaultRequestHeaders.Add("Accept", "application/json");
© www.soinside.com 2019 - 2024. All rights reserved.