[vb/c#.net] automatisch ophalen file van webserver

Pagina: 1
Acties:

  • Rodyman
  • Registratie: November 2001
  • Laatst online: 08-06-2024
De situatie is als volgt:

Ik wil van een webserver een csv file downloaden die gegenereerd wordt aan de hand van wat opties die ingegeven worden op een formulier op diezelfde webserver.
Deze opties worden dus gepost door een form naar een pagina die daarna de csv file terugstuurt.

Nu wil ik dit volledig automatisch laten doen door een .net applicatie.

De post is in principe altijd hetzelfde, dus ik heb geprobeerd om de post precies door te sturen naar de pagina waar hij normaal ook op gepost wordt via een System.Net.WebClient object. Maar dit werkt niet want de pagina vangt dit af en geeft een melding terug dat de transactie niet meer geldig is. Waarschijnlijk worden er dus ook nog sessions opgeslagen die bijhouden wie er ingelogd is etc.

Nu zit ik mezelf een beetje af te vragen hoe ik dit probleem ga oplossen.. misschien met een "macro"achtig iets net als bij hitman-pro. Maar in hoeverre is zoiets in te stellen en niet zichtbaar voor de gebruiker.

Het moet zo zijn, dat de applicatie automatisch de csv file download en plaatst in een map die ik aangeef. Dus compleet zonder dat de user iets ziet/merkt/hoeft te doen om die file te downloaden.

Wat denken jullie dat het makkelijkst is om te doen?

  • user109731
  • Registratie: Maart 2004
  • Niet online

  • Rodyman
  • Registratie: November 2001
  • Laatst online: 08-06-2024
Dat heb ik ook allemaal al gevonden, maar mijn probleem is dat ik de file niet rechtstreeks kan aanroepen met een URL. Ik moet dus eerst inloggen, gegevens POST'en, etc.

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 30-04 15:39

pjvandesande

GC.Collect(head);

Kijk is naar de WebRequest class, hiermee moet het prima lukken. Je kunt je method POST/GET specificeren en een response stream opvragen die je Image bevat die je wilt hebben.

  • Rodyman
  • Registratie: November 2001
  • Laatst online: 08-06-2024
questa schreef op donderdag 15 september 2005 @ 13:47:
Kijk is naar de WebRequest class, hiermee moet het prima lukken. Je kunt je method POST/GET specificeren en een response stream opvragen die je Image bevat die je wilt hebben.
Zoals ik hierboven uitleg, werkt dat dus ook niet, aangezien je ingelogd moet zijn in het systeem, je mag niet zomaar die form aanroepen met de ingegeven POST waardes.

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 30-04 15:39

pjvandesande

GC.Collect(head);

Rodyman schreef op donderdag 15 september 2005 @ 13:49:
[...]


Zoals ik hierboven uitleg, werkt dat dus ook niet, aangezien je ingelogd moet zijn in het systeem, je mag niet zomaar die form aanroepen met de ingegeven POST waardes.
Wat bedoel je met inloggen, dat kan gewoon hoor je kunt Credentials meegeven.

  • Rodyman
  • Registratie: November 2001
  • Laatst online: 08-06-2024
ja ik leg het misschien een beetje moeilijk uit. Met inloggen bedoel ik niet een .htaccess login, maar een custom made .asp login systeem. Dus dat gaat niet met credentials werken :S

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Dan zul je eerst een post moeten doen naar de login.asp. Die geeft je dan een cookie ( Of een hidden field ligt er een beetje aan hoe het systeem werkt ) terug die je met je volgende request mee moet sturen.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Stop AI Slop

Ik zou dan gewoon naar die website gaan en de source van de pagina bekijken, en de volgende gegevens in je programma verwerken:

* "action" van de login form
* alle elementen van de login form (wss "username" en "password")

Als je die dan POST naar de volgende pagina en daarna (dus in dezelfde sessie) dat bestand downloadt?

Ik ken al die custom-made webdingesen niet voor VB, ik zou zelf WinSock gebruiken. Maar dat is misschien licht omslachtig.

---

En inderdaad het koekje teruggeven als die site daarom vraagt.

edit:

te laat :P

[ Voor 14% gewijzigd door CodeCaster op 15-09-2005 14:50 . Reden: Moet typecursus nemen. ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • ThunderNet
  • Registratie: Juni 2004
  • Laatst online: 30-04 14:01

ThunderNet

Flits!

Misch. kun je een webservice bouwen die je op de pagina maakt.
En je laat deze webservice contact opnemen met je clients zodra er een nieuwe 'download' beschikbaar is voor de clients?

Heb je liever vooraf, of achteraf, dat ik zeg dat ik geen flauw idee heb wat ik doe?


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 30-04 15:39

pjvandesande

GC.Collect(head);

ThunderNet schreef op donderdag 15 september 2005 @ 14:51:
Misch. kun je een webservice bouwen die je op de pagina maakt.
En je laat deze webservice contact opnemen met je clients zodra er een nieuwe 'download' beschikbaar is voor de clients?
Inlog lijkt mij makkelijker.

Dus zoals anderen ook al aangeven, POST doen naar de login page. Cookie oid opvangen en image downloaden.

  • Rodyman
  • Registratie: November 2001
  • Laatst online: 08-06-2024
hmm, het plaatsen van een webservice op die pagina is geen mogelijkheid omdat ik zelf geen rechten heb op die webserver.

Het inlog verhaal met het meegeven van de cookie zal ik eens bekijken.

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
Kijk eens in de .NET documentatie naar HttpWebRequest

daar zou je moeten vinden wat je zoekt (met voorbeelden erbij)

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 30-04 15:39

pjvandesande

GC.Collect(head);

4of9 schreef op donderdag 15 september 2005 @ 15:39:
Kijk eens in de .NET documentatie naar HttpWebRequest

daar zou je moeten vinden wat je zoekt (met voorbeelden erbij)
Zoals ik al aangaf inderdaad. Dit lijkt mij een makkelijkere optie dan WinSock.
Pagina: 1