Det kanske var så att jag bara drömmer detta, men jag har för mig att jag har läst någonstans (här har jag för mig) att man kan posta formulärdata till ett ASP-script (eller vilken typ av script som helst). Någon som vet något om det...? Åtminstone kan du skicka querystrings till asp-sidan från en vb-exe, det har jag gjort. Om du kan posta innehåll i t ex textboxar precis som från html-formulär vet jag däremot inte. Problemet är att jag vill posta information till ett script som jag inte har tillgång till och således inte kan ändra i. Nu har jag löst problemet genom att generera ett html-dokument med ett java-script som postar formuläret så fort det öppnas i webläsaren, sedan öppnar jag dokumentet i webläsaren. Detta fungerar ju men är inte en speciellt snygg lösning... Du kan använda dig av WinSock kontrollen och skicka HTTP svaret. Du har inget exempel, jag lyckas inte få det att fungera...Posta formulär från VB
/JohanSv: Posta formulär från VB
Sv: Posta formulär från VB
/JohanSv: Posta formulär från VB
Om du tex har en FORM-TAG med namnet frm och två textboxar - text1 & text2 - så kan du skicka följande HTML-kod:
-BOF-
POST /frm HTTP/1.1
Accept: */*
Referer: http://localhost/test.htm
Accept-Language: sv,en;q=0.5
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: None
User-Agent: Mozilla/4.0
Host: http://localhost
Content-Length: 28
Connection: Keep-Alive
Text1=Visual+Basic&Text2=VB6
-EOF-
Not: Plus-tecknet i Visual+Basic motsvarar space, då du inte får sända space i post-strängen.
//HASSESv: Posta formulär från VB
<code>
Winsock1.Connect
Winsock1.SendData "POST /cgi-bin/scripts/test.pl HTTP/1.1
Winsock1.SendData "Accept: */*" & vbCrLf
Winsock1.SendData "Referer: http://www.domän.se/test"
Winsock1.SendData "Accept-Language: sv,en;q=0.5"
Winsock1.SendData "Content-Type: application/x-www-form-urlencoded"
Winsock1.SendData "Accept -Encoding: None"
Winsock1.SendData "User-Agent: Mozilla/4.0"
Winsock1.SendData "Host: http://www.domän.se"
Winsock1.SendData "Content-Length: " & Len(sträng)
Winsock1.SendData "Connection: Keep -Alive"
Winsock1.SendData sträng
</code>
Jag får Error descriptioon: Valid name, no data record of requested type
/JohanSv: Posta formulär från VB
Sub Test()
Dim s as string, ss as string
ss = "Text1=Visual+Basic&Text2=VB6"
s= "POST /frm HTTP/1.1" & vbcrlf
' NOT: <form name="frm" action="... >
s= s & "Accept: */*" & vbcrlf
s= s & "Referer: http://localhost/test.htm" & vbcrlf
s= s & "Accept-Language: sv,en;q=0.5" & vbcrlf
s= s & "Content-Type: application/x-www-form-urlencoded" & vbcrlf
s= s & "Accept-Encoding: None" & vbcrlf
s= s & "User-Agent: Mozilla/4.0" & vbcrlf
s= s & "Host: http://localhost" & vbcrlf
s= s & "Content-Length: " & len(ss) & vbcrlf
s= s & "Connection: Keep-Alive" & vbcrlf
s= s & vbcrlf ' OBS! Detta och alla adndra CRLF måste finnas!!!!
s= s & ss & vbcrlf
With Winsock1
.RemoteHost = "localhost"
.RemotePort = 80
.Connect
.SendData s
End With
End sub
Har inte testat om det jag skriver fungerar, men jag tror det.
TIPS:
1. Bygg ett program som agerar som en Webserver, som bara skriver ut mottaget data till en fil eller Debuggern. (10-15 rader kod)
2. Ändra action egenskapen i html-dok som du vill skicka.
3. Sänd filen - med Browsern - till din Webserver.
4. I filen/debuggern ser du vad som skall skickas till servern.