На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Дополнения к правилам (только для данного раздела)
- Используйте подсветку синтаксиса при выделении исходного кода;
- В описании темы обязательно укажите язык программирования;
- Прежде чем задать вопрос, обязательно воспользуйтесь поиском и загляните в FAQ раздела.
- Если вопрос касается серверного ПО, указывайте ОС.
- Если вопрос касается ASP.NET то лучше будет задать его в соответствующем разделе. Там вы сможете получить ответ намного быстрее.

Модераторы: Serafim, fatalist
  
> Запрос GET, получить ответ от сервера: работает он или нет
    Доброго времени суток! Подскажите, пожалуйста, как мне получить ответ от сервера о том, есть отклик или нет?

    Простого решения в интернете не нашёл.

    ExpandedWrap disabled
      Option Explicit
       
      Private Sub Form_Load()
      With Winsock1
          .Close
          .Connect "http://aaa.ru", 80
      End With
      End Sub
       
      Private Sub Winsock1_Connect()
          Winsock1.SendData "GET /index.php HTTP/1.1" & vbCrLf & _
          "user-agent: My MegaBrowser" & vbCrLf & _
          "cache-control: no-store no-cache" & vbCrLf & _
          "host: localhost" & vbCrLf & vbCrLf
      End Sub
       
      Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
          Dim dt As String, frf As Integer
          Winsock1.GetData dt
          Text1.Text = Text1.Text + dt
      End Sub


    Этот код ничего не даёт.
    Мне желательно, чтобы ответ был краток от сервера, чтобы не парсить километры HTML-кода страницы.
    Сообщение отредактировано: salieri -
    log(2 ^ 232.582.657)-1 is prime!
      Вопрос решил. Помог пример SCINER: Загрузка картинок из инета в PictureBox

      оказывается, без GET тоже можно обойтись
      Сообщение отредактировано: salieri -
      log(2 ^ 232.582.657)-1 is prime!
        Цитата salieri @
        Подскажите, пожалуйста, как мне получить ответ от сервера о том, есть отклик или нет?

        Вопрос не понятен, вы бы хотябы поясняли что такое "отклик"... если нужен пинг хоста - вообще никаких HTTP сокетов не надо было велосипедить.

        Если сервак ваш, либо вы знаете что он строго соблюдает HTTP, вы сами можете запросить у сервера статус (например, вернёт он 503 код, или 200), естно через какой нибудь HEAD запрос.

        Добавили бы ответ на свой вопрос, и вопрос стал бы полезен другим людям...
        CyberLock | BloodBath-LAN
        Немного творчества - альбом ArtMetal [Metal, Instrumental, Orchestral]
          VisualProg, прошу прощения, что так поздно ответил, потому что не был подписан на тему, а сейчас просматривал и увидел ваш ответ

          Цитата VisualProg @
          если нужен пинг хоста

          да, нужен именно он, надо проверить, есть ли отклик, не висит ли сервер, всё ли с ним хорошо
          Цитата VisualProg @
          сервак ваш

          да, сервер свой
          Цитата VisualProg @
          запросить у сервера статус

          подскажите, пожалуйста, какой заголовок передавать в HttpOpenRequest и HttpSendRequest?
          Цитата VisualProg @
          никаких HTTP сокетов не надо было велосипедить

          я плохо разбираюсь, поэтому что пришло в голову, то и делаю;
          буду рад, если будет решение лучше

          Цитата VisualProg @
          Добавили бы ответ на свой вопрос, и вопрос стал бы полезен другим людям...

          конечно

          ExpandedWrap disabled
            Public Function HTTPGET(ByVal sUrl_HTTP As String) As String
             
                Dim hOpen As Long
                Dim hOpenUrl As Long
                
                Dim FF As Long
                
                Dim sReadBuffer As String * 2048
                Dim sBuffer As String
                
                
                Dim lNumberOfBytesRead As Long
                
                Dim bDoLoop As Boolean
                
                bDoLoop = True
                sBuffer = NLS
             
                
            hOpen = InternetOpen(MeConnect, 0, NLS, NLS, 0)
            If hOpen > 0 Then
             
            hOpenUrl = InternetOpenUrl(hOpen, sUrl_HTTP, NLS, 0, &H80000000, 0)
            If hOpenUrl > 0 Then
             
            While bDoLoop
             
            sReadBuffer = NLS
            InternetReadFile hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead
            sBuffer = sBuffer & Left(sReadBuffer, lNumberOfBytesRead)
             
            If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
             
            DoEvents
            Wend
             
             
            InternetCloseHandle hOpenUrl
            End If
             
            InternetCloseHandle hOpen
            End If
             
             
             
            HTTPGET = sBuffer
             
            End Function
          Сообщение отредактировано: salieri -
          log(2 ^ 232.582.657)-1 is prime!
          1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script Execution time: 0,0754 ]   [ 14 queries used ]   [ Generated: 8.08.20, 02:52 GMT ]