VB6 och HTML

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
RadioDJ
Inlägg: 407
Blev medlem: 7 november 2005, 16:18:15
Ort: Helsingborg

VB6 och HTML

Inlägg av RadioDJ »

Har nu suttit har för länge och inte knäckt ett problem.
Hoppas att någon här kan hjälpa mig.
Jag har byggt en Arduino enhet som ligger på nätverket och lyssnar på anrop för att sedan dra lite reläer.
I Arduino använder jag SPI.h och UIPEthernet.h
Tror inte felet ligger här.

Om jag använder en webläsare så fungerar allt som det ska.
Jag har sedan skrivit ett program i Visual Basic 6 som jag vill ska göra samma sak. Men detta får jag inte att fungera. Blir inte klok på vad jag gjort för fel.

Hoppas någon kan hjälpa mig med vad som jag saknar.

Här kommer det som jag gjort i VB:
Jag har bantat ner koden lite men tror att allt det viktiga kom med.

Kod: Markera allt

Global g_blnConnected as Boolean


Public Sub SendToURLrelay()
Dim strHTTP As String
    
  On Error Resume Next
  
  If g_blnConnected Then Exit Sub
 
' Configure winsock
  Winsocket.Protocol = sckTCPProtocol
  Winsocket.RemoteHost = "192.168.0.239"
  Winsocket.RemotePort = "80"
      
  strHTTP = "GET /?relay1=1 HTTP/1.0" & vbCrLf
  strHTTP = strHTTP & "Host: 192.168.0.239 & vbCrLf
  strHTTP = strHTTP & vbNewLine & vbNewLine

  Winsocket.Connect
    
' Wait for a connection
  While Not g_blnConnected
    DoEvents
  Wend
    
' Send the HTTP request
  Winsocket.SendData strHTTP
  
  If g_blnConnected = True Then
    Winsocket.close
    g_blnConnected = False
  End If
End Sub


Private Sub Winsocket_Connect()
  g_blnConnected = True
End Sub
Användarvisningsbild
ensten
EF Sponsor
Inlägg: 3759
Blev medlem: 19 oktober 2004, 15:55:20
Ort: Hudiksvall

Re: VB6 och HTML

Inlägg av ensten »

1) VAD är det som inte funkar?
2) "On Error Resume Next" är inge bra om man ska felsöka ...
RadioDJ
Inlägg: 407
Blev medlem: 7 november 2005, 16:18:15
Ort: Helsingborg

Re: VB6 och HTML

Inlägg av RadioDJ »

Det blir inget fel i VB koden.
Har fångat upp alla eventuella fel som bildas i rutinen, men det blir inga.
Det är troligen något med strängen som skickas ut på nätverket.
Mr Andersson
Inlägg: 1397
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: VB6 och HTML

Inlägg av Mr Andersson »

Ett tips är att ladda ner fiddler eller wireshark och se vad som skiljer mellan browsern och ditt program.
Men några saker är
  • Det ska vara en tom rad efter headers, inte två. Vissa servrar är känsliga för sånt. Dessutom måste det vara CRLF.
  • Host: finns inte i HTTP 1.0
  • Du kollar aldrig svar från servern. Förmodligen får du en felkod som kan hjälpa dig. Gissningsvis 400.
RadioDJ
Inlägg: 407
Blev medlem: 7 november 2005, 16:18:15
Ort: Helsingborg

Re: VB6 och HTML

Inlägg av RadioDJ »

Mr Andersson:
Vad heter Host-kommandot i HTTP 1.0???
Kan vara som så att UIPEthernet.h inte har Host:
Mr Andersson
Inlägg: 1397
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: VB6 och HTML

Inlägg av Mr Andersson »

Det finns ingen motsvarighet i 1.0, till skillnad mot 1.1 som kräver att Host ska vara med. Ta bort det helt eller byt nollan i versionsnumret till en etta (om servern stödjer det). Sen finns det servrar som t.ex. apache som accepterar host fast det inte finns i standarden, men det är inget man ska ta för givet om alla servrar.

Testa med endast strHTTP = "GET /?relay1=1 HTTP/1.0" & vbCrLf & vbCrLf
Det är den enklaste 1.0-requesten som går att göra.

Edit: men jag tror största felet är att du använder vbNewLine istället för vbCrLf.
RadioDJ
Inlägg: 407
Blev medlem: 7 november 2005, 16:18:15
Ort: Helsingborg

Re: VB6 och HTML

Inlägg av RadioDJ »

Fick det inte att fungera med Winsock i VB6.
Provade med Inet i stället och det gick med en gång.
Kommer nu att använda Inet istället.
Tack för ledtrådarna i alla fall.
Skriv svar