Помогите Победить GET/POST передача параметров скриптам.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Yuri_1216
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 27.09.2004 (Пн) 16:37

Помогите Победить GET/POST передача параметров скриптам.

Сообщение Yuri_1216 » 09.02.2005 (Ср) 12:29

В чём проблема понять не могу
предположим я хочу передать скрипту
по адресу namehost.ru/index.php?id=22 вот этот параметр
и соответственно получить ответ
Использую wisock контролл дописываю код:
Код: Выделить всё
Private Sub Command2_Click()
Winsock1.Protocol = sckTCPProtocol
Winsock1.Connect "namehost.ru", 80
While Not Winsock1.State = 7
         DoEvents '
Wend
Dim parametrs As String
parametrs = "id=22"

Winsock1.SendData "GET /namehost.ru/index.php?" & parametrs & " HTTP/1.0" & vbCrLf & vbCrLf
Winsock1.SendData "Content-Type: application/x-www-form-urlencoded" & vbCrLf
Winsock1.SendData "Host: namehost.ru" & vbCrLf
Winsock1.SendData "Content-Length: " & Len(parametrs) & vbCrLf & vbCrLf
Winsock1.SendData parametrs & vbCrLf

End Sub

Потом обрабатываю ответ сервера
Причём жду получения Html кода запрошенной страници!
Когда начинаю выводить ответ сервера
то получаю
HTTP/1.1 404 Not Found
......
страница получается не найдена
а вот если в IExpl написать соответствующий адрес скрипта
namehost.ru/index.php?id=22
эта програмулина от MicrOsofta находит скрипт и нормально отображает запрошенню страницу!!!!
Предпологаю в чём косяк:
Код: Выделить всё
Winsock1.SendData "GET /namehost.ru/index.php?" & parametrs & " HTTP/1.0" & vbCrLf & vbCrLf

GET /namehost.ru/index.php? - сдесь надо писать адрес_скрипта
а вот какой. Откуда я знаю какая структура на Юнихах у них ну типа(/home/namehost121/public_html/) Я идиот! Убейте меня, кто-нибудь!????
Получается если не знаю то не могу программно обратится со своей машины не сервак?Я идиот! Убейте меня, кто-нибудь!???
А почему IE может?Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!??

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.02.2005 (Ср) 15:04

Чё-то ты всё гонишь :-)
Попробуй писать Winsock1.SendData "GET /index.php?" & parametrs & " HTTP/1.0" & vbCrLf
(без "/namehost.ru" и с одним переводом строки).

И какой-то у тебя странный гибрид GET и POST имхо получился... Я бы убрал все строки, кроме приведённой выше и заголовка "Host".

Попробуй, может выйдет :-)
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.02.2005 (Ср) 15:10

Roman Koff писал(а):В начале адреса надо явно указать протокол, тоесть http://.
Правильный адрес для скрипта будет выглядеть следующим образом:
http://namehost.ru/index.php?id=22

Ты думаешь, HTTP-сервер сам не знает, по какому протоколу отдать ответ? Тем более, в той же строке написано HTTP/1.1


(Ба, да ведь там HTTP/1.0! И заголовки! Чудеса...)
2Yuri_1216: поставь всё-таки в запросе HTTP/1.1
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.02.2005 (Ср) 18:20

Так вот, явно указывать "http://" - не нужно
Вот рабочий пример:
Код: Выделить всё
Option Explicit

Private Sub Form_Load()
Winsock1.RemoteHost = "google.com"
Winsock1.RemotePort = 80
Winsock1.Connect
End Sub

Private Sub Winsock1_Connect()
Winsock1.SendData "GET /search?q=help+me%2C+i%27m+lost HTTP/1.1" & vbCrLf
Winsock1.SendData "Host: www.google.com" & vbCrLf
Winsock1.SendData vbCrLf
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim s As String
Winsock1.GetData s
Text1 = Text1 & s
End Sub



Что самое замечательное, всё это давно уже лежит на http://bbs.vbstreets.ru/viewtopic.php?t=7726
Изображение

Yuri_1216
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 27.09.2004 (Пн) 16:37

Сообщение Yuri_1216 » 09.02.2005 (Ср) 18:37

Спасибо огромное за ответы.
Сейчас попробую работающий пример

Yuri_1216
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 27.09.2004 (Пн) 16:37

Сообщение Yuri_1216 » 09.02.2005 (Ср) 18:48

Попробовал код от
-------"tyomitch"-----------
выдаёт ошибку:
------------------------------------------------
Run time error '40006'
Wrong protocol or connect. state for the requested
transaction or request
-----------------------------------------------------
Почему?
Извините неопытного юзера
но это нужно сделать быстро разбираться время в обрез!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 09.02.2005 (Ср) 18:57

У тебя, случайно, не через прокси работает интернет?
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 09.02.2005 (Ср) 19:00

Если есть возможность, установи HTTPWatch и увидишь всю анатомию запросов и ответов.
Lasciate ogni speranza, voi ch'entrate.

Yuri_1216
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 27.09.2004 (Пн) 16:37

Сообщение Yuri_1216 » 10.02.2005 (Чт) 2:30

Инет работает не через проксю.
Так-же локально установлен Apache!
Когда тестил сначала пусканул индейского вождя локально хотел испробовать. Не пошло .Отрубил инейца подрубил инет попробовал как писал
-------"tyomitch"-----------
на google достучатся нифига ошибки хренячит!
А вот на valuexoste у меня сайт висит пробнул туда стукнуться так те мне вооще тестовую страницу Apache выдали что-то не так
Господа у кого нибудь есть 100% работающий код поделитесь please если не в лом!!!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 10.02.2005 (Чт) 6:13

2Yuri_1216: ну что я могу сделать, у меня мой код работает - вот только что ещё раз проверил. Проверьте его ещё кто-нибудь - вдруг я там правда чего-то не учёл?
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.02.2005 (Чт) 6:46

Работает.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


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

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

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 177

    TopList