[vb.net] HTTPS Post resulteert in een 302 redirect

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • trekker22
  • Registratie: Maart 2003
  • Laatst online: 10-10 11:31
Heb reeds een Vb.Net applicatie die inlogt op een website middels een HTTPS Post. Dit gaat correct.

Daarna doe ik nog een POST request om gegevens van een bepaalde pagina op te halen (export van een CSV).
Echter geeft de server een HTTP 302 redirect en geeft "Due to technical problems, the download failed."
Handmatig inloggen en dan op de export knop drukken gaat wel goed.

Heb 1 op 1 de Raw HTTPS POST headers nagekeken middels Fiddler en zie geen verschil tussen de bot en handmatig?
Alleen in de Cookies lijkt een verschil te zitten, echter dit lijken alleen tracking cookies.

De Form data bestaat uit ook uit een beginDate=2016/02/25, dit geef ik al door als beginDate=2016%2F02%2F25 Of moet dit met een officiele URL encode? In de Raw HTTP Headers zie ik gewoon geen verschil.

Iemand een idee wat ik kan doen om uit te zoeken waar het mis gaat? (Heb dus geen controle over de server. Is een publieke website). Wireshark weinig toevoegen denk ik?

Alle reacties


Acties:
  • 0 Henk 'm!

Verwijderd

De melding ("Due to technical..") van de HTTP 302 lijkt erop dat deze status door het server-side script wordt gegeven, dus data fout ?
Geeft de response een Location header mee ? (hoort aanwezig te zijn bij 302)
Is je request Content Type header hetzelfde bij bot en handmatig ?

Ik zou de complete requests vergelijken, dus headers en data. Alles gelijk trekken en als het werkt, de dingen eraf halen die niet nodig of wenselijk zijn. Je weet immers niet wat het script met tracking cookies doet.

Acties:
  • 0 Henk 'm!

  • trekker22
  • Registratie: Maart 2003
  • Laatst online: 10-10 11:31
ik heb de headers 1 voor 1 afgestreept en ze zijn identiek op dit na:

1. De mijne heeft alleen een Keep-Alive header als ik als protocol HTTP 1.0 pak. Als ik via de Browser doe heb ik zowel een HTTP 1.1 request en ook een Keep-Alive header. (In principe zou dit niks uit moeten maken, 1.1 doet vanzelf Keep-alive. En in VB.Net kan ik niet forceren om 1.1 te gebruiken en ook een Keep-Alive nog eens extra mee te sturen)

2. op gebied van cookies is er iets anders. Lastig om te traceren hoe ik mijn programma ook precies al die cookies kan laten zetten.

Acties:
  • 0 Henk 'm!

  • Siebsel
  • Registratie: November 2004
  • Laatst online: 10-10 15:42
Ik heb niet echt verstand van .net, maar ik weet dat bijvoorbeeld cURL een optie heeft om redirects te volgen. Een 302 is een redirect naar een andere locatie, maar het kan zijn dat je programma die niet volgt. Je browser volgt die redirect wel.

Acties:
  • 0 Henk 'm!

  • trekker22
  • Registratie: Maart 2003
  • Laatst online: 10-10 11:31
Nou er hoort geen Redirect te zijn. (Ik heb Request.AllowAutoRedirect juist op True staan. Zet ik hem op False loopt het programma door maar krijg ik een lege string als pagina return!)

Als ik in Fiddler kijk als ik het handmatig doe, dan wordt het form gepost en krijgt precies op die URL een http 200 met een webpagina.

dus https://member.xxx.com/mobile/transactions/export geeft een code 200 met de webpagina.

doe ik het via de Bot
krijg ik op de https://member.xxx.com/mobile/transactions/export een http 302 die doorstuurt naar:

https://member.xxx.com/mobile/transactions/downloadfailed en deze pagina heeft wel inhoud.

Dus de server ziet ergens dat een bot het proces doorloopt ipv een browser.

[ Voor 11% gewijzigd door trekker22 op 03-03-2016 16:16 ]


Acties:
  • 0 Henk 'm!

  • trekker22
  • Registratie: Maart 2003
  • Laatst online: 10-10 11:31
Met een omweg kan ik wel wel aan de gewenste data.

Dit door 2 Ajax http request te doen. Echter krijg ik het dan niet terug in csv formaat.

Hoe heet dit formaat met al die accolades? Niet Ajax toch? Want wil het dan met een vb.net reader vergelijken met de data reeds in de lokale DB.

Edit kwam niet meteen op de goede naam, maar leer nu dat dit JSON is. Dan kom ik er wel uit denk ik!

[ Voor 15% gewijzigd door trekker22 op 03-03-2016 17:35 ]

Pagina: 1