Webbrowser & HTTP POST

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Scuder
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 334
Зарегистрирован: 17.08.2002 (Сб) 13:18
Откуда: Moscow, Russia

Webbrowser & HTTP POST

Сообщение Scuder » 27.05.2004 (Чт) 12:53

Люди, спасите!! Срочно нужно, но я не знаю HTTP и пр..

Задача такая: Отправить запрос на сервер методом HTTP POST и получить ответ. Winsock не рассматривается, поскольку соединение защищено SSL-сертификатом. Поэтому использую WebBrowser..

Делаю так:

Код: Выделить всё
Dim Query As String
Dim Headers As String

Query = "..."

Headers = "Content-type: text/xml; charset=windows-1251 "
Headers = Headers + "Content-length: " + CStr(Len(Query))

Me.WB.Navigate "https://.../xml.jsp", , , Query, Headers


Не работает. :-( Точнее, работает, но сервер возвращает пустой документ, а этого быть не должно. Значит где-то ошибка.. Запрос проверял - всё ок.

Может, я Headers криво указываю??

Demonx
Бывалый
Бывалый
 
Сообщения: 237
Зарегистрирован: 25.06.2003 (Ср) 0:08
Откуда: Литва/Висагинас

Сообщение Demonx » 27.05.2004 (Чт) 13:18

Попробуй так:
Код: Выделить всё
Headers = "Content-type: text/xml; charset=windows-1251" & vbcrlf
Headers = Headers + "Content-length: " + CStr(Len(Query))

Scuder
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 334
Зарегистрирован: 17.08.2002 (Сб) 13:18
Откуда: Moscow, Russia

Сообщение Scuder » 27.05.2004 (Чт) 13:30

Ответ тот же, только не через секунду, а через 5 минут..

Demonx
Бывалый
Бывалый
 
Сообщения: 237
Зарегистрирован: 25.06.2003 (Ср) 0:08
Откуда: Литва/Висагинас

Сообщение Demonx » 27.05.2004 (Чт) 13:33

Кстати вот тебе пример работы с SSL. http://pscode.com/vb/scripts/ShowCode.asp?txtCodeId=49170&lngWId=1

Scuder
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 334
Зарегистрирован: 17.08.2002 (Сб) 13:18
Откуда: Moscow, Russia

Сообщение Scuder » 27.05.2004 (Чт) 15:15

Спасибо, конечно.. Но я бы всё-таки хотел разобраться с WebBrowser'ом..

Alfa
Бывалый
Бывалый
 
Сообщения: 249
Зарегистрирован: 12.01.2003 (Вс) 20:15
Откуда: Россия, Красноярск

Ответ

Сообщение Alfa » 27.05.2004 (Чт) 15:29

А прибавить длину Headers?
Изображение

Scuder
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 334
Зарегистрирован: 17.08.2002 (Сб) 13:18
Откуда: Moscow, Russia

Сообщение Scuder » 27.05.2004 (Чт) 15:33

А надо? :-)
Прибавил. Без изменений..

Scuder
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 334
Зарегистрирован: 17.08.2002 (Сб) 13:18
Откуда: Moscow, Russia

Сообщение Scuder » 27.05.2004 (Чт) 16:22

Блин, позвонил "на сервер" :-), ребята говорят, что запрос приходит методом GET. Но ведь в MSDN ясно написано:

object.Navigate( _
url As String, _
[Flags As Variant,] _
[TargetFrameName As Variant,] _
[PostData As Variant,] _
[Headers As Variant])

[...]

PostData
Optional. Data to send to the server during the HTTP POST transaction. For example, the POST transaction is used to send data gathered by an HTML form to a program or script. If this parameter does not specify any post data, the Navigate method issues an HTTP GET transaction. This parameter is ignored if URL is not an HTTPURL.


Я же правильно понимаю, что в данном случае нет разницы между http и https?

Но тогда я не понимаю почему WB игнорирует POST..

Народ, не проходите мимо!! Ну оч-чень надо!! %-)

Demonx
Бывалый
Бывалый
 
Сообщения: 237
Зарегистрирован: 25.06.2003 (Ср) 0:08
Откуда: Литва/Висагинас

Re: Ответ

Сообщение Demonx » 27.05.2004 (Чт) 17:01

Alfa писал(а):А прибавить длину Headers?


Прибавлять длинну заголовков не надо. Только PostData :wink:

Scuder
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 334
Зарегистрирован: 17.08.2002 (Сб) 13:18
Откуда: Moscow, Russia

Сообщение Scuder » 27.05.2004 (Чт) 17:58

В общем, опять я сам отвечаю на свой же вопрос.. :-(

Используем библиотеку Microsoft XML.

Dim con As MSXML2.XMLHTTP
Set con = New MSXML2.XMLHTTP

con.Open "POST", "https://www..../xml.jsp", False
con.send Query

MsgBox con.responseText

И всё!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23

    TopList  
cron