1 | |
Отправить пакет данных через WebRequest03.04.2015, 16:33. Показов 2059. Ответов 16
Метки нет (Все метки)
Привет форумчане!
Интересует, можно ли как нибудь отправить пакет данных, который отправляет любой браузер, используя WebRequest или HttpWebRequest Имею в виду вот такой пакет: Код
GET http://mail.ru/ HTTP/1.1 Host: mail.ru User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Cookie: mrcu=9D8E511293E06DE6972A0A01060A; VID=3ilWyk1S-D1K00000102141K:; i=AQAk4QdVAQATAAgcCVAAAV0AASoBAYIBASMDASoDAXsEAQoIAQsIAQ== Connection: keep-alive
0
|
03.04.2015, 16:33 | |
Ответы с готовыми решениями:
16
Подскажите как отправить пакет 10 байт на устройство через com порт Почему если отправить пакет UDP и конечного адресата в сети не существует, то пакет не отправляется? Нужно отправить принятый пакет! Отправить/принять пакет UDP |
4 / 4 / 1
Регистрация: 03.04.2015
Сообщений: 5
|
||||||
03.04.2015, 16:41 | 2 | |||||
Если правильно понял, то в контролере MVC это вытаскивается примерно так:
0
|
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
|
|
03.04.2015, 21:12 | 4 |
Это уже распарсенный результат в удобном для человека виде , на уровне сокетов - просто набор байтов , соответственно:
https://msdn.microsoft.com/ru-... .110).aspx И придется вручную обрабатывать коды ответов от удаленного сервера. Добавлено через 2 минуты У них нет открытого интерфейса на столь низком уровне.
0
|
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
|
|
04.04.2015, 00:13 | 6 |
Потому что нужно шифровать сообщения , читать спецификацию ssl , в общем для развития может и полезно , но проще воспользоваться стандартными HttpClient_ами , продублировав коллекцию заголовков.- остальное там уже сделано.
http://blogs.msdn.com/b/joncol... ation.aspx
1
|
04.04.2015, 22:48 [ТС] | 7 |
т.е. в C# есть стандартные средства для создания SSL соединений?
посмотрел ссылку, но не совсем понял этот проект, а точнее где именно там реализация того, что нужно именно в моём случае? можете показать конкретный кусок кода из этого примера?
0
|
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
|
|
05.04.2015, 15:54 | 8 |
https://msdn.microsoft.com/ru-... .110).aspx https://msdn.microsoft.com/ru-... .110).aspx Но Вы то хотели сразу пакет целиком отправить , и тогда на ваши плечи ложится весь хардкодинг на уровне TcpClient-а. , тогда как есть более высоко абстрагированные классы , такие как HttpClient, WebClient, и т.п , но там треьбуется заполнять заголовки через соответствующие поля , что за рамками вашей постановки. З.Ы пример в предыдущем посте показывает как реализовать ssl клиента на уровне Tcp сокетов
1
|
05.04.2015, 18:41 [ТС] | 9 | |||||
по поводу этого:
и в первой ссылке, как я понял, эта функция уже реализована в этой функции public static bool ValidateServerCertificate, правильно я понял? там обязательно в конце каждого сообщения ставить <EOF>?
0
|
08.04.2015, 02:59 [ТС] | 10 | |||||
попробовал создать по примеру https://msdn.microsoft.com/ru-... .110).aspx
сервер вернул так же ошибку 400 делал так: host - вытаскивал из запроса, пример которого в первом посте на вход функции test2 подаётся массив байт, который является запросом из первого поста
0
|
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
|
|
08.04.2015, 03:22 | 11 |
Так надо нормальный http пакет отправлять , естественно веб.сервер не поймет <EOF> , еще читайте спецификацию http протокола )
0
|
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
|
|
08.04.2015, 03:36 | 13 |
Прокси для https - будет ли работать приведенный код?
Ну эта ошибка говорит только об одном , неверно формируете запрос для веб.сервера.
1
|
08.04.2015, 03:44 [ТС] | 14 | ||||||||||
сейчас так:
Код
CONNECT mail.ru:443 HTTP/1.1 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0 Proxy-Connection: keep-alive Connection: keep-alive Host: mail.ru:443 Добавлено через 2 минуты если быть точным, то вот так:
0
|
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
|
|
08.04.2015, 03:47 | 15 |
Просто сравните через tcp снифер пакеты отправляемые вашим приложением и браузером , добейтесь идентичного результата. В общем , чем смог - помог ) , все нужные классы у вас есть , примеров вроде тоже хватает , дальше msdn+гугл. , ну или путем экспериментов.
0
|
08.04.2015, 04:12 [ТС] | 16 |
посмотрел через CommView, и нашёл вероятную причину:
у меня в файле hosts стоит так скажем защита для всех программ adobe, чтоб не могли обратиться к серверу за проверкой подлинности. и как видно на скрине, видимо когда я отправляю данные, он обращается к этому файлу и вытаскивает от туда activate.adobe.com только я не пойму почему так происходит
0
|
09.04.2015, 14:13 [ТС] | 17 | |||||||||||||||
посмотрел проект по ссылке Прокси для https - будет ли работать приведенный код?
всё работает, но только при включённом фидлере. как только выключаю его, то получаю тот же 400 bad request ещё не могу понять, для чего эта часть: и как это работает
Добавлено через 3 часа 48 минут Методом гугла и "тыка" смог сообразить такой вариант, работающий без фиддлера:
0
|
09.04.2015, 14:13 | |
09.04.2015, 14:13 | |
Помогаю со студенческими работами здесь
17
Отправить TCP пакет на заданный адрес Как отправить пакет с определенного порта? Как программно отправить udp пакет? Как маршрутизатор узнаёт кому какой пакет отправить Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |