Вы столкнулись с этой проблемой? Я запускаю код, очень похожий на код из этого предыдущего вопроса , когда в режиме nUnitTest и URI содержит «/? Test & format = xml», тест nUnit завершается неудачно с IOException, «невозможно прочитать данные из транспорта Соединение: Соединение закрыто. "
Однако трассировка Fiddler, которая была запущена в то время, показывает тот самый xml, который я ожидал.
Я воссоздаю заголовки запросов точно (почти) так, как они отправляются при отправке через браузер.
Наконец, если я пропущу "/? Test & format = xml" из URI, я получу HTML, который в противном случае ожидал бы.
ИСТОЧНИК КОД:
public virtual bool Run()
{
var request = CreateRequest();
var response = GetResponse(request);
var responseString = ReadResponse(response);
this.SetResults(responseString);
return this.IsSuccessful;
}
protected internal virtual HttpWebRequest CreateRequest()
{
var address = TestConfig.Address;
var request = (HttpWebRequest)WebRequest.Create(address);
request.Accept = "*/*";
request.UseDefaultCredentials = true;
request.CachePolicy = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore);
return request;
}
protected internal virtual HttpWebResponse GetResponse(HttpWebRequest request)
{
var response = (HttpWebResponse) request.GetResponse();
return response;
}
protected internal virtual string ReadResponse(HttpWebResponse response)
{
var stream = response.GetResponseStream();
var responseString = ReadResponse(stream);
stream.Close();
response.Close();
return responseString;
}
protected internal virtual string ReadResponse(Stream stream)
{
var reader = new StreamReader(stream);
var responseString = reader.ReadToEnd();
return responseString;
}