Restsharp:IRestResponse 内容 returns“[]”
Restsharp: IRestResponse content returns "[]"
我正在尝试使用 restsharp 对我的休息 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,但内容是“[]”,尽管当我用 swagger 测试它时,我得到一个很好的 json-response 填充了想要的内容。
如您所见,我已尝试同时使用 AddDefaultUrlSegment 和 AddQueryParameter。我猜最后一个最明显吧?
下面的 url 大摇大摆是:“http://pseudoUrl/Users?UserId=25248896”添加了 header:headerType1 并且再次 - 工作得很好。
谁能看出我做错了什么?
AddQueryParameter
使用您当前的输入将 ?uid=25248896
添加到 URL。
只需将不带查询 http://pseudoUrl/Users
的 URL 放入 RestClient
构造函数中,然后将 "uid" 更改为 "UserId" AddQueryParameter
[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"));
}
我正在尝试使用 restsharp 对我的休息 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,但内容是“[]”,尽管当我用 swagger 测试它时,我得到一个很好的 json-response 填充了想要的内容。
如您所见,我已尝试同时使用 AddDefaultUrlSegment 和 AddQueryParameter。我猜最后一个最明显吧?
下面的 url 大摇大摆是:“http://pseudoUrl/Users?UserId=25248896”添加了 header:headerType1 并且再次 - 工作得很好。
谁能看出我做错了什么?
AddQueryParameter
使用您当前的输入将 ?uid=25248896
添加到 URL。
只需将不带查询 http://pseudoUrl/Users
的 URL 放入 RestClient
构造函数中,然后将 "uid" 更改为 "UserId" AddQueryParameter
[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"));
}