Завершить веб-запрос раньше (C #) - PullRequest
1 голос
/ 24 августа 2009

Как часть набора интеграционных тестов, которые я пишу, я хочу заявить, что мой сервер ведет себя правильно, когда клиентский HTTP-запрос завершается раньше, чем все данные ответа были отправлены.

Возможно ли этосоздать HTTP-запрос и завершить его после получения всего нескольких байтов данных в C #?

Ответы [ 3 ]

2 голосов
/ 24 августа 2009

Вам не нужно читать все байты для ответа. Просто прочитайте столько байтов, сколько хотите, и затем вернитесь из теста.

Вы можете сделать это более или менее так:

Stream myStream = resp.GetResponseStream();
myStream.Read(bufferArray, 0, 1); //read 1 byte into bufferArray
return;

Вы можете найти документацию по WebReponse полезной.

0 голосов
/ 24 августа 2009

Я нашел решение, которое работает для меня. Я просто закрываю ответ после его получения. Это, кажется, оставляет меня с заголовками ответа, но закрывает соединение до того, как сервер завершит отправку.

var response = request.getResponse();
response.Close();

// Assert that server has dealt with closed response correctly
0 голосов
/ 24 августа 2009

Просто запустите вызов асинхронно с помощью, скажем, фонового работника, а затем закройте поток / канал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...