Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 POST - запрос из фокса - часть 2  [new]
-=AlexiS=-
Member

Откуда: Одесса
Сообщений: 712
Собственно это продолжения моих попыток сформировать из фокса POST запрос.
Возникла у меня необходимость проверки данных по фирмам через интернет.
для Украины это все вылилось в код
Public poWinHttp
sURL='http://sta.kmu.gov.ua/tax/control/vat/search?isJuridical=1&individualNumber=310949715527'
poWinHttp = Createobject("WinHttp.WinHttpRequest.5.1")
? poWinHttp.Open("POST", sURL, .F.)
? poWinHttp.Send()
? poWinHttp.Status, poWinHttp.StatusText
STRTOFILE(poWinHttp.ResponseBody,'c:\gb.htm')
тут все вроде как работает.
Но решил я проверить и Российские фирмы.
после всяческих экспериментов и поискам по разным форумам
"выродилось" это вот в такой вариант
Public poWinHttp
poWinHttp = Createobject("WinHttp.WinHttpRequest.5.1")
sURL='http://www.valaam-info.ru/fns/'
* рефер , поскольку напрямую не пускает
sURLR='http://www.valaam-info.ru/fns/'
* Первый заход для того чтобы получить значения PHPSESSID
poWinHttp.Open("GET", sUrl, .f.)
poWinHttp.SetRequestHeader("Referer",sURLR )
poWinHttp.SetRequestHeader("content-type", "application/x-www-form-urlencoded")
? poWinHttp.Send()
gStr=poWinHttp.GetAllResponseHeaders()
gStr=SUBSTR(gStr,AT('PHPSESSID',gStr))
gStr=SUBSTR(gStr,1,AT(';',gStr)-1)
* Второй заход попытка получить данные
sURL='http://www.valaam-info.ru/fns/fns.php?name=Майкрософт'+gStr
poWinHttp.Open("POST", sUrl, .f.)
poWinHttp.SetRequestHeader("Referer",sURLR )
poWinHttp.SetRequestHeader("content-type", "application/x-www-form-urlencoded")
? poWinHttp.Send()
? poWinHttp.Status, poWinHttp.StatusText
STRTOFILE(poWinHttp.ResponseBody,'c:\g1b.htm')
так вот , не возвращает он никаких данных - т.е. как-бы не "поступают" POST параметры.

Проверив снифером оба запроса , обнаружил , что не смотря на POST в poWinHttp.Open - POST-DATA в запросе пустые и сам запрос - в принципе все-равно GET.
Но по Украине скрипт отрабатывает и в таком случае, а по России - нет.

кстати проверив тем-же снифером

loXML = CreateObject("MSXML2.ServerXMLHTTP.5.0")
loxml.Open("POST","http://sta.kmu.gov.ua/tax/control/vat/search?isJuridical=1&individualNumber=310949715527","false")
loxml.send()

oHTTP=NewOBJECT("MSXML2.XMLHTTP")
oHTTP.open([POST],"http://sta.kmu.gov.ua/tax/control/vat/search?isJuridical=1&individualNumber=310949715527",.f.)
oHttp.send()
получаю то-же результат .

Сам я не очень силен в и-нетовских вещах- поэтому прошу помощи - как-же мне все-таки получить POST - запрос.
26 ноя 07, 13:53    [4963049]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить