C# Content.ReadAsAsync始终提供空值

C# Content.ReadAsAsync始终提供空值,c#,asp.net-web-api,C#,Asp.net Web Api,我在使用Content.ReadAsAsync阅读同意书时遇到问题。 看看我的代码 private HttpResponseMessage _responseMessage; _responseMessage = UnitTestHelper.Get(string.Format("api/StudentController/Get/?StartDate={0}&EndDate={1}", DateTime.Now, DateTime.Now)); Assert.IsTrue(_respo

我在使用
Content.ReadAsAsync
阅读同意书时遇到问题。 看看我的代码

private HttpResponseMessage _responseMessage;
_responseMessage = UnitTestHelper.Get(string.Format("api/StudentController/Get/?StartDate={0}&EndDate={1}", DateTime.Now, DateTime.Now));
Assert.IsTrue(_responseMessage.IsSuccessStatusCode);
Assert.IsTrue(_responseMessage.Content.ReadAsAsync<List<StudentModel>>().Result.Count > 0);
var auditData = _responseMessage.Content.ReadAsStringAsync().Result;
_responseMessage.Content.ReadAsAsync<List<StudentModel>>().Result;
  • 最后一行给出null。我在这里等一份清单

  • 我的问题。

    下面的代码行始终显示null。然而我希望有一份清单

    _responseMessage.Content.ReadAsAsync<List<StudentModel>>().Result;
    
    \u responseMessage.Content.ReadAsAsync().Result;
    

    为什么??这里怎么了?

    问题是您调用了两次
    \u responseMessage.Content.ReadAsAsync()
    。您应该将结果存储在某个变量中,然后使用它

    var result = _responseMessage.Content.ReadAsAsync<List<StudentModel>>().Result;
    Assert.IsTrue(result.Count > 0);
    //do whatever needed with result
    
    var result=\u responseMessage.Content.ReadAsAsync().result;
    Assert.IsTrue(result.Count>0);
    //做任何需要做的事都会有结果
    
    另外,您最好使用
    async/await
    而不是调用
    。Result



    更具体地说,
    ReadAsAsync
    使用内部的
    HttpContent.readastreamasync
    缓存内存流,一旦读取
    位置
    就停留在流的末尾。

    问题是您调用了
    \u responseMessage.Content.readasync()
    两次。您应该将结果存储在某个变量中,然后使用它

    var result = _responseMessage.Content.ReadAsAsync<List<StudentModel>>().Result;
    Assert.IsTrue(result.Count > 0);
    //do whatever needed with result
    
    var result=\u responseMessage.Content.ReadAsAsync().result;
    Assert.IsTrue(result.Count>0);
    //做任何需要做的事都会有结果
    
    另外,您最好使用
    async/await
    而不是调用
    。Result



    更具体地说,
    ReadAsAsync
    使用内部的
    HttpContent.readastreamasync
    缓存内存流,一旦读取
    Position
    就停留在流的末尾。

    看看这里,你的问题让人困惑。如果前缀对象为
    null
    ,如何访问
    Result.Count
    ?请再次查看问题。更新了。@immirza,
    ReadAsStringAsync
    格式不是JSON格式,而是经过JSON编码的字符串,因此使用斜杠。这意味着返回数据的是一个JSON格式的字符串,而不是JSON。你明白吗?显示映射到您正在调用的url的操作。请查看此处,您的问题令人困惑。如果前缀对象为
    null
    ,如何访问
    Result.Count
    ?请再次查看问题。更新了。@immirza,
    ReadAsStringAsync
    格式不是JSON格式,而是经过JSON编码的字符串,因此使用斜杠。这意味着返回数据的是一个JSON格式的字符串,而不是JSON。你明白吗?显示映射到正在调用的url的操作。