我一直在研究移动应用程序的后端和前端,并且无法让我的发布请求正常工作。我一直将 Xamarin.Forms 用于前端,将 .Net 用于后端。
客户端的代码:
var res = await App.Client.PostAsync("url", args);
var s =await res.Content.ReadAsStringAsync();
await DisplayAlert("Content", s, "OK");
我已经检查并收到了一个HttpResponseMessage
,但是当我尝试阅读它时,内容流始终是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
}
我一直试图弄清楚为什么Content
会这样,null
但我不知道为什么。
编辑 1: App.Client 是HttpClient
整个移动应用程序使用的。
在我的app.xaml.cs
文件中:
static HttpClient client;
public static HttpClient Client
{
get
{
if (client == null)
{
client = new HttpClient();
}
return client;
}
}