首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于C#的webClient.UploadString单元测试

基于C#的webClient.UploadString单元测试
EN

Stack Overflow用户
提问于 2015-08-06 11:35:06
回答 1查看 1.4K关注 0票数 2

我正在使用webClient.uploadString(uri,参数)方法。它击中一个返回字符串的url。每当出现不良请求或其他类似错误时,服务器就会抛出异常。

当单元测试时,我需要比较响应状态代码和一些特定的状态代码。

UploadString方法仅返回字符串。

我的查询是:如何从WebClient获得响应对象,以便比较状态代码

EN

回答 1

Stack Overflow用户

发布于 2015-08-06 11:37:49

只有在请求失败时才能确定状态代码:

代码语言:javascript
复制
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。它有一个更好的界面:

代码语言:javascript
复制
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,而且它似乎没有什么用处。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31854723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档