我正在使用webClient.uploadString(uri,参数)方法。它击中一个返回字符串的url。每当出现不良请求或其他类似错误时,服务器就会抛出异常。
当单元测试时,我需要比较响应状态代码和一些特定的状态代码。
UploadString方法仅返回字符串。
我的查询是:如何从WebClient获得响应对象,以便比较状态代码
发布于 2015-08-06 11:37:49
只有在请求失败时才能确定状态代码:
try
{
var client = new WebClient();
client.DownloadString("...");
}
catch (WebException ex)
{
var statusCode = ((HttpWebResponse)ex.Response).StatusCode;
...
}如果要确定请求成功时的状态代码,则需要https://en.wikipedia.org/wiki/Monkey_patch WebClient.
实际上,我认为您使用的是https://msdn.microsoft.com/en-us/library/system.net.http.httpclient(v=vs.118).aspx而不是WebClient。它有一个更好的界面:
var client = new HttpClient();
HttpResponseMessage response = client.GetAsync("...").Result;
HttpStatusCode status = response.StatusCode;
string result = response.Content.ReadAsStringAsync().Result;记住,您所描述的不是一个单元测试,而是一个https://en.wikipedia.org/wiki/Integration_testing,而且它似乎没有什么用处。
https://stackoverflow.com/questions/31854723
复制相似问题