Toon posts:

[Delphi] http-post (TNMHttp, Fastnet)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik gebruik het fastnet TNHttp component om data naar een website te posten. Helaas lukt dit niet helemaal.

Ik maak de postdata als volgt op:
code:
1
postdata := 'item1=0&item2=1&item3=2';

als ik
code:
1
http.get(url + '?' + postdata);

doe gaat alles prima. Wanneer ik het dan weer eens een keertje probeer te posten (het kan namelijk nogal veel data worden) met
code:
1
http.post(url, postdata);

komen de parameters niet aan op de website.

Heeft iemand enig idee waarom en/of hoe ik dit op zou kunnen lossen?

  • MaxxRide
  • Registratie: April 2000
  • Laatst online: 09-01 10:13

MaxxRide

Surf's up

Ik denk dat de opmaak van postdata anders is dan die van GET data. Dat is althans het eerste waar ik aan denk!

In de Delphi help heb ik al wat zien staan. Selecteer het component ram op F1 en click op methods vervolgens op post en dan zie je in de het kopje wel staan "example" hier staat hoe het werkt. :D

Suc7 ermee...

If you are not wiping out you are nog pushing enough...


Verwijderd

Topicstarter
In mijn Delphi-help staat een voorbeeld waarin een user gevraagd wordt de postdata string in te typen, dus daar kan ik niet zoveel mee. :(

  • MaxxRide
  • Registratie: April 2000
  • Laatst online: 09-01 10:13

MaxxRide

Surf's up

je kunt natuurlijk even een netwerksniffer installen. Kun je gelijk zien wat er over gaat als je een post doen vanuit IE. :D Maar er is vast ook wel wat documentatie op i-net te vinden..

If you are not wiping out you are nog pushing enough...


  • SiHiDa
  • Registratie: December 2001
  • Laatst online: 01-03-2023
Probeer eens via de ICS-componenten te werken. :)

Verwijderd

Topicstarter
Ik hem even laten posten naar een eigen appje van mij dat zich als webserver voordeed. De fout bij het posten zit em hierin:

normale post:
POST / HTTP/1.0
Host: localhost
Accept: www/source, text/html, video/mpeg, image/jpeg, image/x-tiff
Accept: image/x-rgb, image/x-xbm, image/gif, */*, application/postscript
Content-type: application/x-www-form-urlencoded
Content-Length: 66

val1%3D1%26array1%255B%255D%3D2%26array2%255B%255D%3D3
maar de laatste regel zou eigenlijk moeten zijn:
val1=1&array1%255B%255D=2%26array2%255B%255D=3
array1%255B%255D is dan de httpEncode van array1[]. Hier moet httpEncode wel gebeuren en dit doe ik dan ook zelf.

Bij het posten maakt TNMHttp lijkt het er zelf nog eens een httpEncoded string van waardoor de server (elke server) er niets mee kan.

Iemand een suggestie hoe dit opgelost dient te worden? :?

Verwijderd

Probeer de Synapse lib eens :http://www.ararat.cz/synapse.

Sorry, maar ik vind ics :r.

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Of waarom gewoon niet Indy? Gratis met source en v8 zit standaard bij D6

http://www.nevrona.com/indy/

We adore chaos because we like to restore order - M.C. Escher


  • MaxxRide
  • Registratie: April 2000
  • Laatst online: 09-01 10:13

MaxxRide

Surf's up

de = wordt toch gewoon vervangen door %3d?

If you are not wiping out you are nog pushing enough...


Verwijderd

Op zaterdag 13 juli 2002 21:13 schreef Materie het volgende:
Ik gebruik het fastnet TNHttp component om data naar een website te posten. Helaas lukt dit niet helemaal.

Ik maak de postdata als volgt op:
code:
1
postdata := 'item1=0&item2=1&item3=2';

als ik
code:
1
http.get(url + '?' + postdata);

doe gaat alles prima. Wanneer ik het dan weer eens een keertje probeer te posten (het kan namelijk nogal veel data worden) met
code:
1
http.post(url, postdata);

komen de parameters niet aan op de website.

Heeft iemand enig idee waarom en/of hoe ik dit op zou kunnen lossen?
Ik heb dit probleem ook al eerder gehad. IS hier trouwens ook een draadje over geweest.

Het blijkt in het Delphi-component niet goed te zitten. Wat wel kan werken maar wat onhandig is is om het via een body en header file te doen.

Verwijderd

Topicstarter
hmmm, ik heb nog wel even gezocht naar een topic. Het is in ieder geval "gewoon" opgelost door middel van een indy componentje.
Alles werkt zoals het zou moeten nu :)
Pagina: 1