Hallo Leute!
Zurzeit befasse ich mit mit etwas, für mich neuem, nämlich die CouchDB. Die CouchDB habe ich erfolgreich installiert. Nun möchte ich über ein C++ Programm diese ansteuern. Dies funktioniert über HTTP-Requests.
In meinem Programm gibt es eine Variable „client“, welcher die IP-Adresse und den Port ( 5984 ) zugeordnet ist und sich hierüber bereits mit der CouchDB verbindet.
Eine neue Datenbank anlegen funktioniert über einen HTTP-Request schonmal und sieht wie folgt aus:
client.print_P(PSTR(„PUT /test2 HTTP/1.1\r\nHost: „HOSTNAME“\r\n\r\n“));
Dabei ist zu beachten das „test2“ der Name der neu anzulegen Datenbank ist und hinter der Variable „HOSTNAME“ die IP-Adresse der CouchDB hinterlegt ist.
Dies funktioniert wie gesagt ohne Probleme.
Um dieser Datenbank nun einen Eintrag hinzuzufügen, muss wohl ein HTTP POST Request verwendet werden. Da die CouchDB diese Einträge als „json“-Format entgegennimmt, sollte der POST Request etwa wie folgt aussehen:
client.print_P(PSTR(„POST /test2 HTTP/1.1\n Host: „HOSTNAME“\n Content-Type: application/json\n Content-Length: 245\r\n\r\n \n{\n"Subject“:„bla“,\n"Author":„Fisch“\n}\r\n\r\n"));
Leider funktioniert dieses jedoch nicht wie gewünscht. Allerdings ist mir auch nicht recht bewusst wie genau mit den „\r\n“ umgegangen werden muss. Laut Google soll dieses „\r\n“ den Bereich zwischen Header und Body teilen, allerdings bin ich mir dabei nicht sicher. Ich habe schon viele Möglichkeiten ausprobiert, jedoch ohne Erfolg. Meist werden die Fehlertypen „Bad Request“ ( was wohl auf einem Fehlerhaften aufbau der Request hinweist) oder „Unsupported Media Typ“, wobei laut Google der „Content-Type“ richtig und akzeptiert werden sollte.
Hat jemand evtl. eine Idee und kann mir weiterhelfen?
Für Antworten wäre ich sehr dankbar!
Gruß,
likebecks