我在这里缺少啥? IsSuccessStatusCode 无效

Posted

技术标签:

【中文标题】我在这里缺少啥? IsSuccessStatusCode 无效【英文标题】:What I'm missing here? IsSuccessStatusCode not valid我在这里缺少什么? IsSuccessStatusCode 无效 【发布时间】:2020-09-21 17:58:25 【问题描述】:

在我的代码中,我正在尝试与 php 网络服务进行通信。在我的 Csharp IsSuccessStatusCode 中的 Xamarin 代码中,它是无效的“'string' 不包含“isSuccessStatusCode'...的定义。我在网上看到的所有代码都包括这个,但我不知道它对我不起作用。

private async void GetDataAsync()

    //nota: para que await funcione hay que escribir en la rutina al lado de private async
    HttpClient httpClient = new HttpClient();
    var response = await httpClient.GetStringAsync("http://192.168.1.33:82/usuarios_xamarin/Usuarios.php");


    if (response.IsSuccessStatusCode)
    
        var content = await response.Content.ReadAsStringAsync();
        var posts = JsonConvert.DeserializeObject<List<Posts>>(content);
    
    //pertenece al nugget newtonsoft.json
    //si no esta instalado hay que instalarlo en los nuggets

    //var posts = JsonConvert.DeserializeObject<List<Posts>>(response);




【问题讨论】:

【参考方案1】:

response 是一个字符串,而字符串没有 IsSuccessStatusCode 方法。如果你使用GetAsync而不是GetStringAsync,那么你可以使用response的属性(IsSuccessStatusCode)。

Documentation on HttpClient.GetAsync Method

【讨论】:

【参考方案2】:

嗯,没错。 string 没有名为 IsSuccessStatusCode 的属性。 HttpResponseMessage does.

您正在调用端点并将响应直接转换为string。如果您想检查响应的状态码,您需要分两部分进行:

HttpResponseMessage response = await client.GetAsync("http://192.168.1.33:82/usuarios_xamarin/Usuarios.php");
if (response.EnsureSuccessStatusCode) 

    string responseBody = await response.Content.ReadAsStringAsync();

【讨论】:

以上是关于我在这里缺少啥? IsSuccessStatusCode 无效的主要内容,如果未能解决你的问题,请参考以下文章

垂直对齐此文本我缺少啥? [复制]

我在 XMLHttpRequest 中缺少啥?

编译 C++ Thrift 代码以连接 Cassandra 会导致以下错误。我们在这里缺少啥?

我对 WCF 缺少啥?

这个 WMD 示例缺少啥?

我的远程 RMI 呼叫缺少啥?