Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Помогите разобраться с Winsock Добавлено: 12.04.09 13:05  

Автор вопроса:  veibert | Web-сайт: keysled.narod.ru | ICQ: 470733077 
подскажите что не так?
Winsock1.Protocol = sckTCPProtocol 'Установка протокола
Winsock1.Connect "blogtips.ru", 80 'подключение через порт 80
While Not Winsock1.State = 7 'Ждем, пока подключится.
DoEvents '
Wend '
Parametrs = "author=vei&email=veibert@mail.ru&comment=xxx"
Winsock1.SendData "POST /wp-comments-post.php HTTP/1.1" & vbCrLf
Winsock1.SendData "Content-Type: application/x-www-form-urlencoded" & vbCrLf
Winsock1.SendData "Host: blogtips.ru" & vbCrLf
Winsock1.SendData "Content-Length: " & Len(Parametrs) & vbCrLf & vbCrLf
Winsock1.SendData Parametrs & vbCrLf

Ответить

  Ответы Всего ответов: 11  

Номер ответа: 1
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #1
Добавлено: 12.04.09 14:05
1. Один POST-запрос отправляется одним вызовом SendData, а вот строку запроса подготавливаешь отдельно до этого.
2. А если не дождемся никогда подключения к хосту, прогой предусмотрено зависать навсегда? Предусмотри выход из цикла.

Ответить

Номер ответа: 2
Автор ответа:
 veibert



ICQ: 470733077 

Вопросов: 17
Ответов: 18
 Web-сайт: keysled.narod.ru
 Профиль | | #2
Добавлено: 12.04.09 15:01
mc-black можешь код кинуть?

Ответить

Номер ответа: 3
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #3
Добавлено: 12.04.09 17:20
Не может он код кинуть, копипастеры, млин... Пи*дец.

Ответить

Номер ответа: 4
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #4
Добавлено: 12.04.09 21:59
Да, не могу. А что, я разве непонятно написал? Просто мне западло кинуть. Считай это самой лучшей помощью.

Ответить

Номер ответа: 5
Автор ответа:
 veibert



ICQ: 470733077 

Вопросов: 17
Ответов: 18
 Web-сайт: keysled.narod.ru
 Профиль | | #5
Добавлено: 13.04.09 00:27
Написал понятно, спасибо. Но всё равно не получается (может я не правильно понял)
  1.  
  2. Private Sub Command1_Click()
  3. Winsock1.Protocol = sckTCPProtocol 'Установка протокола
  4. Winsock1.Connect "blogtips.ru", 80 'подключение через порт 80
  5. While Not Winsock1.State = 7 'Ждем, пока подключится.
  6. DoEvents '
  7. Wend '
  8. Parametrs = "author=vei&email=veibert@mail.ru&comment=xxx"
  9. Packet = _
  10. "POST /wp-comments-post.php HTTP/1.1" & vbCrLf & _
  11. "Content-Type: application/x-www-form-urlencoded" & vbCrLf & _
  12. "Host: blogtips.ru" & vbCrLf & _
  13. "Content-Length: " & CStr(Len(Parametrs)) & vbCrLf & vbCrLf & Parametrs
  14. Winsock1.SendData Packet
  15. End Sub
  16.  
  17. Private Sub Winsock1_Close()
  18. Winsock1.Close
  19. End Sub
  20.  
  21. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  22. Dim Data As String
  23. Winsock1.GetData Data
  24. Text1.Text = Data$
  25. End Sub


Пробую оставить комментарий на странице:
http://blogtips.ru/chego-ne-nuzhno-delat-ostavlyaya-kommentariy
параметры для передачи беру со следующего тега страницы
  1.  
  2. <form action="http://blogtips.ru/wp-comments-post.php" method="post" id="commentform">
  3. <p><input type="text" name="author" id="author" class="textarea" value="vvv" size="28" tabindex="1" /><label for="author">Name</label> (required)</p>
  4. <p><input type="text" name="email" id="email" value="veibert@mail.ru" size="28" tabindex="2" class="textarea" /><label for="email">E-mail</label> (required) </p>
  5. <p><input type="text" name="url" id="url" value="" size="28" tabindex="3" class="textarea" />
  6. <label for="url"><acronym title="Uniform Resource Identifier">URI</acronym></label>
  7. </p><p><label for="comment">Your Comment</label><br />
  8. <textarea name="comment" id="comment" cols="60" rows="10" tabindex="4" class="textarea">"></textarea></p><p><input name="submit" id="submit" type="submit" tabindex="5" value="Отправить" class="Cbutton" /><input type="hidden" name="comment_post_ID" value="106" /> <br>
  9. <input type="hidden" name="redirect_to" value="/chego-ne-nuzhno-delat-ostavlyaya-kommentariy" /></p><p style="clear: both;" class="subscribe-to-comments">
  10. <input type="checkbox" name="subscribe" id="subscribe" value="subscribe" style="width: auto;" /><label for="subscribe">Notify me of followup comments via e-mail</label>
  11. </p></form>


Получаю следующий ответ:
HTTP/1.1 200 OK
Date: Sun, 12 Apr 2009 20:12:35 GMT
Server: Apache/1.3.41 (Unix) mod_log_bytes/1.2 mod_bwlimited/1.4 mod_auth_passthrough/1.8 FrontPage/5.0.2.2635 mod_ssl/2.8.31 OpenSSL/0.9.7a
Cache-Control: no-cache, must-revalidate, max-age=0
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Pragma: no-cache
X-Powered-By: PHP/4.4.9
Last-Modified: Sun, 12 Apr 2009 20:12:36 GMT
Transfer-Encoding: chunked
Content-Type: text/html

0

Где капать, подскажите кому не западло.

Ответить

Номер ответа: 6
Автор ответа:
 veibert



ICQ: 470733077 

Вопросов: 17
Ответов: 18
 Web-сайт: keysled.narod.ru
 Профиль | | #6
Добавлено: 13.04.09 00:36
Пробовал найти прогу для перехвата параметров передаваемых браузером серверу, не нашёл. А есть вообще такие проги?

Ответить

Номер ответа: 7
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #7
Добавлено: 13.04.09 03:34
Дык ты ж не все параметры передал. Смотри, вон их там сколько скрытых...

Ответить

Номер ответа: 8
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #8
Добавлено: 13.04.09 03:38
<input type="hidden" name="comment_post_ID" value="106" />
<input type="hidden" name="redirect_to" value="/chego-ne-nuzhno-delat-ostavlyaya-kommentariy" />
<input type="checkbox" name="subscribe" id="subscribe" value="subscribe" style="width: auto;" />

А вообще, в правильном направлении мыслишь. Но нужен сторожевой счетчик, чтобы цикл ожидания соединения когда-нибудь обязательно завершился.

  1. safetyCounter=2000 'выбери значение сам
  2. While ((Not Winsock1.State = 7) or (safetyCounter=0) 'Ждем, пока подключится.
  3. safetyCounter=safetyCounter - 1
  4. DoEvents '
  5. Wend '

Ответить

Номер ответа: 9
Автор ответа:
 veibert



ICQ: 470733077 

Вопросов: 17
Ответов: 18
 Web-сайт: keysled.narod.ru
 Профиль | | #9
Добавлено: 13.04.09 20:20
  1. Parametrs = _
  2. "author=vvv" & _
  3. "&email=veibert@mail.ru" & _
  4. "&url=" & _
  5. "&comment=xxx" & _
  6. "&submit=Отправить" & _
  7. "&comment_post_ID=106" & _
  8. "&redirect_to=/chego-ne-nuzhno-delat-ostavlyaya-kommentariy" & _
  9. "&subscribe=subscribe"

Вроде все параметры заполнил, нехрена не выходит

Ответить

Номер ответа: 10
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #10
Добавлено: 14.04.09 00:46
Совсем спамеры страх потеряли.

Ответить

Номер ответа: 11
Автор ответа:
 veibert



ICQ: 470733077 

Вопросов: 17
Ответов: 18
 Web-сайт: keysled.narod.ru
 Профиль | | #11
Добавлено: 16.04.09 23:39
Про спам и мыслей не было. Хочу сделать прогу для отправки СМС через сайт Tele2, а там ещё нужно было разобраться как загрузить защитный код (картинку) в прогу , вот поэтому и пробовал отправить текст на сайт где не нужно вводить защитный код с картинки, а там оказывается сообщения помещаются только после проверки админом (а в браузере с кеша грузились), с картинками тоже разобрался.

А вообще, в правильном направлении мыслишь. Но нужен сторожевой счетчик, чтобы цикл ожидания соединения когда-нибудь обязательно завершился.
  1.  
  2. safetyCounter=2000 'выбери значение сам
  3. While ((Not Winsock1.State = 7) or (safetyCounter=0) 'Ждем, пока подключится.
  4. safetyCounter=safetyCounter - 1
  5. DoEvents '
  6. Wend '



почему-то он не работает
  1.  
  2. While Not (Winsock1.State = 7 Or safetyCounter = 0)


а вот так работает

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам