簡體   English   中英

Restsharp:IRestResponse內容返回“ []”

[英]Restsharp: IRestResponse content returns “[]”

我正在嘗試使用restsharp對我的rest api進行測試,這似乎是用於簡單測試的非常強大且易於使用的工具。

話雖如此,我仍然無法從IRestResponse獲取內容。

代碼如下:

...
    [TestMethod]
    public void Testing_Whether_Get_Returns_cellphone()
    {
        // Arrange
        RestClient restClient = new RestClient("http://pseudoUrl/Users?UserId={uid}");       
        //restClient.AddDefaultHeader("headerType1", Guid.NewGuid().ToString());
        //restClient.AddDefaultUrlSegment("uid", "25248896");
        RestRequest restRequest = new RestRequest(Method.GET);
        restRequest.AddQueryParameter("uid", "25248896");
        restRequest.AddHeader("headerType1", Guid.NewGuid().ToString());
        // Act
        IRestResponse restResponse = restClient.Execute(restRequest); // restresponse = "StatusCode: Ok.."
        string response = restResponse.Content; // response = "[]"

        // Assert
        Assert.IsTrue(response.Contains("cellphone"));
    }
...

當測試上述內容時,狀態碼為200,但內容為“ []”,即使我用搖搖欲墜地測試它時,我也會得到一個很好的json響應,其中充滿了所需的內容。

如您所見,我已嘗試同時使用AddDefaultUrlSegment和AddQueryParameter。 我猜最后一個是最明顯的嗎?

大張旗鼓的以下網址是:“ http:// pseudoUrl / Users?UserId = 25248896 ”再次添加了標頭:headerType1-效果很好。

有人看到我在做什么錯嗎?

當前輸入的AddQueryParameter會將?uid=25248896添加到URL。

只需將沒有查詢http://pseudoUrl/Users URL放入RestClient構造函數中,然后在AddQueryParameter中將“ uid”更改為“ UserId”

[TestMethod]
public void Testing_Whether_Get_Returns_cellphone()
{
    // Arrange
    RestClient restClient = new RestClient("http://pseudoUrl/Users");
    RestRequest restRequest = new RestRequest(Method.GET);
    restRequest.AddQueryParameter("UserId", "25248896");
    restRequest.AddHeader("headerType1", Guid.NewGuid().ToString());
    // Act
    IRestResponse restResponse = restClient.Execute(restRequest); 
    string response = restResponse.Content; // response = "[]"

    // Assert
    Assert.IsTrue(response.Contains("cellphone"));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM