C# HttpResponseMessage.Content为空

C# HttpResponseMessage.Content为空,c#,.net,xamarin.forms,httpresponsemessage,C#,.net,Xamarin.forms,Httpresponsemessage,我一直在一个移动应用程序的后端和前端工作,我很难让我的post请求正常工作。我一直在使用Xamarin.Forms作为前端,使用.Net作为后端。 客户端的代码: var res = await App.Client.PostAsync("url", args); var s =await res.Content.ReadAsStringAsync(); await DisplayAlert("Content", s, "OK"); 我已经检查并

我一直在一个移动应用程序的后端和前端工作,我很难让我的post请求正常工作。我一直在使用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()显示响应,则会收到一条带有

“状态代码:200,原因短语:'OK',版本:1.1,内容: System.Net.HttpStreamContent,标题:{服务器:Microsoft IIS/10.0 X-Powered-By:ASP.NET,日期:2018年2月20日星期二格林威治标准时间17:08:42, 内容长度:4,内容类型:application/json;字符集=utf-8}

我一直在想为什么内容是空的,但我不知道为什么

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

在my 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");

App.Client.PostAsync
是您创建的方法吗?如果是,您可能会在有机会读取流之前处理客户端。#您是否尝试过从控制器返回字符串或对象?实际上为空?res.Content?您是否检查了url是否正确,并尝试通过POSM进行测试A(镀铬扩展)找到你的后端工作正常。如果它工作正常,那么只需调试并检查res有什么。如果res.Content在那里,并且s有一个值,那么我猜你在显示警报消息时丢失了s.Result以获取其结果。只需检查此链接并返回字符串或对象,就可以处理get请求,但我似乎无法这样做让POST请求正常工作。尝试显式设置内容类型,如content=new-StringContent(“Hello”,Encoding.UTF8,“text/plain”);