Moi
Olen kääntämässä pientä ohjelman pätkää vb6 => vb.net
Tarkoituksena on siirtää vakioveikkausrivi veikkauksen palvelimelle.
Rivin siirto veikkauksen palvelimelle (toimii ok):
request = WebRequest.Create("https://www.veikkaus.fi/www4text?game=sport&op=checkGame&l=f&P=N&T=1&M=13&I11=1&I12=1&I13=X&I14=X&I15=2&I16=1&I17=1&I18=1&I19=2&I1A=2&I1B=1&I1C=X&I1D=2") request.Method = "POST" request.ContentType = "application/x-www-form-urlencoded" Response = request.GetResponse() reader = New StreamReader(Response.GetResponseStream, System.Text.Encoding.Default) Vastaus = reader.ReadToEnd reader.Close() Response.Close()
Tässä välissä haetaan vahvistustunnukset (signature, id) vastaustekstistä.
Rivin vahvistus:
request = WebRequest.Create("https://www.veikkaus.fi/www4text?op=acceptGame&transaction-ID=" & id & "&" & _ "signature1=" & sign1 & "&" & "signature2=" & sign2 & "&" &...........) request.Method = "POST" request.ContentType = "application/x-www-form-urlencoded" Response = request.GetResponse() reader = New StreamReader(Response.GetResponseStream, System.Text.Encoding.Default) Vastaus = reader.ReadToEnd reader.Close() Response.Close()
Ongelmana on se, että jostain syystä vahvistustunnukset jäävät jonnekin koneen syövereihin eikä palvelimelle ole mahdollista siirtää riviä vanhoilla vahvistustunnuksilla. Miten nuo tunnukset (cookiet?) saa 'nollattua'? Menenkö taas p edellä puuhun?
Pikemminkin tulisi mieleen, että keksi jää matkalle. Tuo koodisi ei näytä tallettavan ensimmäisessä yhteydessä mahdollisesti saatuja keksejä mihinkään.
En tiedä mitä komponenttia käytit VB6:n puolella, mutta se luultavasti säilytti keksit pyyntöjen välillä.
Hain noi tunnukset (signature1 jne.) tekstistä ja tallensin ne muuttujiin, jotka nollattiin välillä. On vissiin olemassa parempikin tapa, mutta kun en sitä osaa..
VB6:n puolella homma hoitui noin:
Set HttpReq = New WinHttpRequest HttpReq.Open "POST",...... ' HTTP pyyntö HttpReq.Send ' HTTP vastaus vastaus = HttpReq.ResponseText
Ja tuosta vastauksesta tongittiin ne tunnukset.
Mitenköhän saan noita palvelimelta tulevia keksejä luettua/talletettua/nollattua?
WinHttpRequest säilöö saamansa keksit ja antaa ne automaattisesti.
WebRequestin kanssa taas voi esimerkiksi luoda CookieStore olion ja antaa se sama CookieStore kullekin WebRequestille.
Osaisiko joku antaa sellaisen "cookies for dummies" -esimerkin siitä, miten noita keksejä webrequestilla käsitellään? Noi vb.netin omat ohjeet on syvemmältä kuin mariaanien hauta enkä maallikkona oikein tunnu pääsevän tästä hommasta jyvälle.
Aihe on jo aika vanha, joten et voi enää vastata siihen.