Rest Xamarin Forms-simple PostAsync()返回错误400错误请求

Rest Xamarin Forms-simple PostAsync()返回错误400错误请求,rest,asynchronous,xamarin,post,Rest,Asynchronous,Xamarin,Post,我已经检查了每一个类似的问题,虽然它们是相似的,但没有找到解决方案 问题: 我使用HttpClient()实现了一个从Xamarin移动应用程序到PHP服务器的非常简单的post请求。目前,PHP服务器只需打印出它给出的任何post请求 当我使用Postman发送我的web服务器post请求时,PHP工作正常,但是尝试从我的移动应用程序发送post请求会导致错误: {状态代码:400,原因短语:“错误请求”,版本:1.1,内容:System.Net.Http.StreamContent,标题:

我已经检查了每一个类似的问题,虽然它们是相似的,但没有找到解决方案

问题:

我使用
HttpClient()
实现了一个从Xamarin移动应用程序到PHP服务器的非常简单的post请求。目前,PHP服务器只需打印出它给出的任何post请求

当我使用
Postman
发送我的web服务器post请求时,PHP工作正常,但是尝试从我的移动应用程序发送post请求会导致错误:

{状态代码:400,原因短语:“错误请求”,版本:1.1,内容:System.Net.Http.StreamContent,标题: { 日期:2018年8月3日星期五08:52:36 GMT 传输编码:分块 连接:保持活力 设置Cookie:uuu cfduid=d54d4dc18d07eeae5179fde8e4533dd6881533286355;expires=Sat,03-Aug-19 08:52:35 GMT;path=/;domain=.braz.io;HttpOnly;安全 预期CT:最大年龄=604800,报告uri=”https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" 服务器:cloudflare CF-RAY:44478c8b9d0c1d68 MEL 内容类型:text/html }}


这是我偶然发现的一个解决方案(如果有人能在评论中写下/编辑这个答案,说明为什么这是一个很好的解决方案!)


右键单击安卓项目->安卓选项->高级->将
HttpClient实现
Default
更改为
Android

,原因可能有很多。我建议首先检查响应的主体,看看它是否提供了有关请求错误原因的详细信息。我将使用完整的错误消息编辑我的问题否您需要阅读响应的主体
string body=wait response.Content.ReadAsStringAsync()
查看是否有任何重要的详细信息。有时服务器会在响应中提供详细信息。您所描述的上述功能似乎刚刚返回了一个简单的
400错误请求
html页面,我会将其添加到问题中,因为您没有发送正确的内容类型?
public class RestService
{
    HttpClient client;
    private const string URL = "https://braz.io/mobile.php";

    public RestService()
    {
        client = new HttpClient();
        client.MaxResponseContentBufferSize = 256000;
    }

    public async Task<string> getUserInformation(string username, string password)
    {
        var uri = new Uri(string.Format(URL, string.Empty));
        try
        {
            StringContent s = new StringContent("HELLO WORLD");
            var response = await client.PostAsync(uri, s);
        }
        catch (Exception ex)
        {Console.WriteLine(ex);}
        return null;
    }
}
   <html>\r\n<head><title>400 Bad Request</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>400 Bad Request</h1></center>\r\n<hr><center>openresty/1.11.2.4</center>\r\n</body>\r\n</html>\r\n"