jag behöver skicka några variabler från vb till en asp-sida via en form. i nuläget skriver jag en fil till hårddisken med Anslut till servern på port 80 och vid connect så skickar du "GET /index.asp?var1=A&var2=2" & vbCrLf & vbCrLf okej, men det där är väl bara query strings? jag vill skicka variablerna som värden från en <form>. får det inte att fungera. På host så skriver du bara vilken host det är, alltså www.domän.com. Sidan du vill ha skriver du efter POST. .SendData s måste köras i eventet On_Connect (eller vad det nu heter) har jag för mig, du har inte hunnit bli "Connected" när den körs nu. koden ser nu ut såhär: Använd dej av "Option Explicit" så kommer du se ett fel. Variabeln s är inte deklarerad i Connect-suben. Om det inte händer något verkar det iofs vara något annat fel, men testa såhär: tack! nu funkar det mot min test-asp-sida på localhost, men inte mot den asp-sidan på nätet som jag egentligen ska skicka värdena till... skumt. aha, sidan jag skickar värdena till kollar i en session om man är inloggad. går det att komma förbi på nåt sätt? Du får kolla upp hur http-protokollet fungerar... Sen ska du helt enkelt gå till sidan som sätter session och sen spara undan cookie-strängen och gå till nästa sida och skicka med cookie-strängenWinsock - skicka variabler till asp-sida
<code>
"<form><input type=""text"" value=""" & värde & """>"
</code>
osv... sedan använder jag en webbrowser för att öppna sidan från hårddisken, som sedan automatiskt submittar formen via javascript.<br>
men det måste finnas nåt bättre sätt. kom att tänka på winsock, som jag aldrig satt mig in i hur det fungerar.<br>
så, kan någon snäll person visa hur man gör för att skicka några variabler till en asp-sida (precis som med en form) mha. winsock?Sv: Winsock - skicka variabler till asp-sida
Jag tror nog att det där ska bli rätt...
ThomasSv: Winsock - skicka variabler till asp-sida
Sv: Winsock - skicka variabler till asp-sida
Svara
Sv: Winsock - skicka variabler till asp-sida
jag får felmeddelandet:
"Wrong protocol or connection state for the requested transaction or request"
här är min kod:
<code>
Dim s As String, ss As String
ss = "disp=1&usName=banarne+test&usUSN=banarne2"
s = "POST /form1 HTTP/1.1" & vbCrLf
' NOT: <form name="frm" action="... >
s = s & "Accept: */*" & vbCrLf
s = s & "Referer: http://www25.brinkster.com/banarne" & 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: www.domain.com/sidan.asp" & 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 = "www.domain.com"
.RemotePort = 80
.Connect
.SendData s
End With
</code>
kan mycket väl vara fel på Host-grejen. ska man skriva bara tex. ett ip-nummer eller ska man skriva hela sökvägen till asp-filen? om man bara ska skriva ett ip-nummer el. en domän utan undermappar och filer; vart ska man då skriva filnamnet man vill åt?Sv: Winsock - skicka variabler till asp-sida
Sv: Winsock - skicka variabler till asp-sida
/JohanSv: Winsock - skicka variabler till asp-sida
<code>
Dim s As String
Private Sub Command1_Click()
Dim ss As String
ss = "disp=1&usName=banarne+test&usUSN=banarne2"
s = "POST /sidadressen.asp HTTP/1.1" & vbCrLf
s = s & "Accept: */*" & vbCrLf
s = s & "Referer: www25.brinkster.com/banarne" & 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: www.domän.se" & vbCrLf
s = s & "Content-Length: " & Len(ss) & vbCrLf
s = s & "Connection: Keep-Alive" & vbCrLf
s = s & vbCrLf
s = s & ss & vbCrLf
With Winsock1
.RemoteHost = "www.domän.se"
.RemotePort = 80
.Connect
End With
'MsgBox s
End Sub
Private Sub Winsock1_Connect()
Winsock1.SendData s
MsgBox "connect"
End Sub
</code>
ingenting händer. det verkar som att Winsock1_Connect-händelsen aldrig körs.Sv: Winsock - skicka variabler till asp-sida
<code>
Option Explicit
Dim s As String
Private Sub Command1_Click()
With Winsock1
.RemoteHost = "www.domän.se"
.RemotePort = 80
.Connect
End With
'MsgBox s
End Sub
Private Sub Winsock1_Connect()
Dim ss As String
ss = "disp=1&usName=banarne+test&usUSN=banarne2"
s = "POST /sidadressen.asp HTTP/1.1" & vbCrLf
s = s & "Accept: */*" & vbCrLf
s = s & "Referer: www25.brinkster.com/banarne" & 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: www.domän.se" & vbCrLf
s = s & "Content-Length: " & Len(ss) & vbCrLf
s = s & "Connection: Keep-Alive" & vbCrLf
s = s & vbCrLf
s = s & ss & vbCrLf
Winsock1.SendData s
MsgBox "connect"
End Sub
</code>
/JohanSv: Winsock - skicka variabler till asp-sida
Sv: Winsock - skicka variabler till asp-sida
Sv: Winsock - skicka variabler till asp-sida