Kirjoittaja Aihe: post-kyselyn tekeminen selaimen kautta ja käsittely palvelimella  (Luettu 2838 kertaa)

teele

  • Käyttäjä
  • Viestejä: 850
    • Profiili
Haluaisin lähettää selaimesta esimerkiksi viiden input-kentän sisältämän tekstikentän arvon post-kyselynä c++ -perusteiselle pikku palvelimelle samassa kotikoneessa.

Millainen on Firefoxin lähettämä post-pyyntö ja miten se kannattaisi tulkita pienellä c++ -palvelimella. Mitään ssh:ta ei tarvita, koska kaiikki toimii kotikoneella ja selain olisi vain arvojen syöttämistä varten.

Php:llä voisi varmaan saada myös toimimaan, mutta olisi mukava opetella vähän perusasioitakin eli selaimen kutsujen käsittelyä.

nm

  • Käyttäjä
  • Viestejä: 16424
    • Profiili
POST-pyynnössä selain lähettää lomakkeen kentät x-www-form-urlencoded -tyyppisenä datana. Katso: https://developer.mozilla.org/en-US/docs/Learn/Forms/Sending_and_retrieving_form_data

Ei kannata rakentaa edes yksinkertaista web-palvelinta itse, ellet välttämättä halua perehtyä matalan tason asioihin. Parempi rakentaa valmiin kehyksen päälle, niin toimiva palvelu on mahdollista saada pystyyn jo muutamassa tunnissa. Libhttpserveriä olen muistaakseni ehdottanut joskus aiemminkin:
https://github.com/etr/libhttpserver

kamara

  • Käyttäjä
  • Viestejä: 3028
    • Profiili
Tässä voineen mainita kuriositeettinen bash-serveri, joka oli hauska esimerkki eräässä lehdessä.

https://forum.ubuntu-fi.org/index.php?topic=56734.msg433183#msg433183

teele

  • Käyttäjä
  • Viestejä: 850
    • Profiili
Libhttp-palvelimella onnistuin lähettämään pilvikoneen nettisivulle kotikoneelta uusia muuttujan arvoja. Libhttp toimi hienosti ja ohjelma oli lyhyt. Mutta on tunnustettava, että en sitä ohjelmaa itse tehnyt,vaan se oli peräisin täältä samalta foorumilta

Libhttp näyttää nettikuvausten perusteella oikein kätevältä ja monipuoliselta ohjelmalta, jolle varmasti olisi käyttöä tulevaisuudessakin, mutta valitettavasti en ole onnistunut löytämään aloitttelijatason hello world -esimerkkiä nettiseikkailustani huolimatta. ( täällä https://github.com/lammertb/libhttp/blob/master/examples/hello/hello.c viitataan civetwebiin, jota ei kuitenkaan nettihaulla löydy, täällä https://github.com/etr/libhttpserver/blob/master/examples/hello_world.cpp halutaan tiedostoa <httpserver.hpp>, jota en löydä .... Toimivassa ohjelmassa sisällytettiin vain libhttp.h ohjelmatiedostoon, ja kaikki toimi. )

Tavoitteena on, että voisin kotikoneella avata selaimella sivun, jossa on esimerkiksi 3 input-kenttää, ja sitten tehdä kaikenlaisia tarkistuksia javascriptin kanssa. Sitten joskus, kun tarkistukset ovat loppu, kenttien arvot pitäisi saada samalla koneella toimivaan libhttp c++ -ohjelmaan. Eli sivu lähettäisi lomakkeen arvot libhttp:lle postilla. Olisi hienoa, jos libhttp vielä vastaisi nettisivulle, että arvot on saatu. Mutta tätäkään ei välttämättä tarvita. Syötekenttien arvot libhttp-puolelle olisivat jo iso edidtysaskel.

MUOKKAUS

Nyt taisi lopulta löytyi sellainen sivusto, jonka ohjeilla voisi yrittää kokeiluja

https://github.com/yhirose/cpp-httplib

Ehkä hakutermi nettihaussa vihdoin onnistui tällä kertaa hyvin.



« Viimeksi muokattu: 10.01.22 - klo:10.16 kirjoittanut teele »

nm

  • Käyttäjä
  • Viestejä: 16424
    • Profiili
Libhttp, httpserver ja cpp-httplib ovat kaikki eri kirjastoja, joilla on omat riippuvuutensa ja asennusmekanisminsa. Jos headeria ei löydy, kirjasto ei ole asennettu oikein.