[英]RestSharp returns IRestResponse.StatusCode == 0 to Polly onRetry
[英]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.