无法使用 Content.ReadAsAsync

Cannot use Content.ReadAsAsync

我的 Login.xaml.cs 称之为 class:

public class LoginViewModel
{
    public LoginViewModel(string entryValue) {
        JsonSerializer serializer = new JsonSerializer();
        var clientIDValue = entryValue;
        LoginModel loginModelCientID = new LoginModel();
        loginModelCientID.clientID = clientIDValue;

        var entryJson = JsonConvert.SerializeObject(loginModelCientID);
        var content = new StringContent(entryJson, Encoding.UTF8, "application/json");
        Console.WriteLine(entryJson);

        using (var client = new HttpClient())
        {
            var uri = "http://******/test.php";
            var result = client.PostAsync(uri, content);

            var resultString = result.Content.ReadAsStringAsync();
        }
    }

}

但是,我收到一条错误消息:

Task does not contain a definition for content and no accessible...

我正在尝试发出 post 请求并将输出存储到变量。

我对 C# 很陌生,更不用说 xamarin 表单了。另一个问题是,ReadAsStringAsync() 实际存储了什么?

示例我有一个 PHP 代码说

if ($test == null) {
 echo "not ok";
} else {
 echo "ok";
}

它是否存储 echo 命令的输出?

使用这个:

var buffer = System.Text.Encoding.UTF8.GetBytes(entryJson);
var byteContent = new ByteArrayContent(buffer);
byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var result = client.PostAsync(uri, byteContent);

而不是:

var content = new StringContent(entryJson, Encoding.UTF8, "application/json");

ReadAsStringAsync() 将您的网站 api 的 json/xml 响应转换为字符串。

将其读取为字符串后,如果需要反序列化它。

使事件处理程序异步,然后等待 return 任务派生结果的函数,因为您在调用 ReadAsStringAsync

时会遇到同样的问题

改变

var result = client.PostAsync(uri, content);
var resultString = result.Content.ReadAsStringAsync();

var result = await client.PostAsync(uri, content);
var resultString = await result.Content.ReadAsStringAsync();