464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
1 | |
Получить ответ сервера с помошью HttpWebResponse15.08.2015, 05:53. Показов 2154. Ответов 14
Метки нет (Все метки)
Здравствуйте!
Возможно, сказывается то, что уже даже не ночь и мозги не варят, но столкнулся с проблемой. У меня есть массив byte[] в котором лежит текст обычного HTTP-запроса. Хост и порт я из этого запроса уже вытянул. Вот подскажите, как мне теперь из этого всего получить ответ от сервера в виде HttpWebResponse? Массив byte[] с запросом в HttpWebRequest не засовывается, а без HttpWebRequest нельзя получить и HttpWebResponse. Рассматривал ещё вариант с отправкой данных просто через Socket, но в таком случае я тоже не смогу получить ответ в HttpWebResponse. Благодарю за внимание!
0
|
15.08.2015, 05:53 | |
Ответы с готовыми решениями:
14
Получить ответ от сервера Получить ответ от сервера Получить ответ от сервера Не удается получить ответ от сервера |
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
|
|
15.08.2015, 06:21 | 2 |
азачем тебе HttpWebRequest/Response используй сокеты и NetStream и будет тебе счастье
1
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
16.08.2015, 13:28 [ТС] | 3 |
агерон, затем, что не всегда в ответных заголовках приходит Content-Length. А отсюда, я не знаю сколько мне нужно ожидать байт от сервера. Хотел овесить это дело на плечи .Net. При чтении с сокета нужно заранее знать размер приходящих данных. Но не выйдет, наверное.
0
|
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
|
|
16.08.2015, 23:25 | 4 |
читай пока Read не вернет тебе 0 вот и все
Добавлено через 53 секунды + размер локального буфера поставь на 1-4мб
1
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
||||||
17.08.2015, 14:35 [ТС] | 5 | |||||
Почему-то сразу получаю эксепшн после прохождения таймайта, что сервер не отвечает или закрыл соединение.
0
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
18.08.2015, 00:09 [ТС] | 7 |
Это массив данных, который я получаю от браузера.
Запрос от браузера я получаю этим же методом GetRequest, просто передавая в него Socket, связанный с браузером. Подобие прокси, но со своим промежуточным функционалом для статистики.
0
|
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
|
|
18.08.2015, 02:18 | 8 |
ну так и пиши свой прокси унаследовав его от стандартного WebProxy
1
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
18.08.2015, 22:11 [ТС] | 9 |
0
|
Master of Orion
|
|
18.08.2015, 22:43 | 10 |
body90, пример массива? Просто мб его можно распарить и отправить соответствующий запрос. Я с корпоратива и не совсем верно выражаю мысли, если етсь вопросы и уточнения, то задавай
1
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
19.08.2015, 01:39 [ТС] | 11 |
Psilon, Вы правильно понимаете. Массив - это HTTP запрос, отправленный браузером в мой прокси. Этот массив возвращает метод byte[] GetRequest(Socket client) Там лежит просто запрос в виде byte[]. Вот этот же запрос я пересылаю дальше серверу назначения и мне нужно получить от него ответ.
0
|
Master of Orion
|
|
19.08.2015, 03:20 | 12 |
body90, ну я имел ввиду, что если формат массива известен можно его с помощью GetString() распарсить как строку и сделать обычг request. Как массив я, честно говоря, не пробовал никогда пересылать. Обычно уровень немного больший у абстракции, нежели просто byte[]
1
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
19.08.2015, 05:42 [ТС] | 13 |
Ну правильно. Я получаю запрос от браузера в виде byte[], которые вернул метод byte[] GetRequest(Socket client), потом превращаю в строку, вытягиваю из них хост с потром и на этот хост создаю новый сокет {2} и посылаю туда этот же полученный мною массив байт. Потом читаю, что мне пришло на сокет {2} и возвращаю в сокет браузера.
Добавлено через 5 минут Дело в том, что в MSDN написано, что если сокет закрыт Stream.Read() просто возвращает 0. Но у меня этот метод всё равно выбрасывает исключение, что сокет закрыт.
0
|
Master of Orion
|
|
19.08.2015, 10:19 | 14 |
0
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
20.08.2015, 08:43 [ТС] | 15 |
Psilon, ниже в заметках написано
P.S. - я получаю исключение в момент получения запроса от браузера, а не ответа от удалённого сервера. Не ожидал подвоха при получении данных по локалхосту.
0
|
20.08.2015, 08:43 | |
20.08.2015, 08:43 | |
Помогаю со студенческими работами здесь
15
Как получить ответ от сервера? Как получить ответ от сервера? Как получить ответ от сервера? Получить ответ от сервера, AJAX Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |