AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Json Post mit Indy ?
Thema durchsuchen
Ansicht
Themen-Optionen

Json Post mit Indy ?

Ein Thema von Blamaster · begonnen am 23. Sep 2011 · letzter Beitrag vom 24. Sep 2011
Antwort Antwort
Blamaster

Registriert seit: 20. Jul 2007
230 Beiträge
 
#1

Json Post mit Indy ?

  Alt 23. Sep 2011, 23:02
Hi,

ich möchte mit Indy auf die Api einer website zugreifen. Es werden dabei allerdings keine normalen Post befehle, sondern Json Befehle gesendet.

Wie lässt sich das mit Indy umsetzen ?

Gruß Yannic
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#2

AW: Json Post mit Indy ?

  Alt 24. Sep 2011, 09:14
Ich benutze dafür die LkJSON Klasse.

Delphi-Quellcode:
uses
  uLkJSON;


var
  _lkJSONobject: TlkJSONobject;
  _params, _result: TStringStream;
begin
  _lkJSONobject := TlkJSONobject.Create;
  _params := TStringStream.Create('', CP_UTF8);
  _result := TStringStream.Create('', CP_UTF8);
  try
    _lkJSONobject.Add('name', 'value');

    _params.WriteString('data=' + TlkJSON.GenerateText(_lkJSONobject));

    try
      Post('http://...', _params, _result);
    except
    end;

    // _result.DataString auswerten whatever
  finally
    _result.Free;
    _params.Free;
    _lkJSONobject.Free;
  end;

end;
Sebastian
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Json Post mit Indy ?

  Alt 24. Sep 2011, 09:51
Hi,
ich möchte mit Indy auf die Api einer website zugreifen. Es werden dabei allerdings keine normalen Post befehle, sondern Json Befehle gesendet.

Wie lässt sich das mit Indy umsetzen ?
Dazu muss man wissen, ob die Daten als Formularfelder gesendet werden sollen, oder als Body des POST Requests. 'Normal' wären aber eigentlich beide

Für POST mit Formularfeldern ist ein Beispiel hier zu finden (oder mit Indy post form googeln):

http://www.tutorials.de/delphi-kylix...rschicken.html


Ich tippe aber auf die zweite Variante, POST ohne Formularfelder. Das Beispiel von geskill kann man dazu verwenden, wenn man diese Zeile

_params.WriteString('data=' + TlkJSON.GenerateText(_lkJSONobject));
ändert in

_params.WriteString(TlkJSON.GenerateText(_lkJSONobject));
dann steht der reine JSON Code im HTTP Body des POST Requests.

Hope this helps,
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Blamaster

Registriert seit: 20. Jul 2007
230 Beiträge
 
#4

AW: Json Post mit Indy ?

  Alt 24. Sep 2011, 10:41
Hi,

das hat schonmal geholfen Gesucht war der Post mit dem Content im body.

Momentan sehen die erzeugten Requests so aus: {"":"", "":"", "":"", .....}

Ich benötige allerdings verschachtelte Requests. Hier mal ein Beispiel:

Code:
{"header":{"clientRevision":"20100412.13","token":"xxx","uuid":"xxx","client":"gslite","session":"xxx","country":{"CC2":"0","CC1":"18014398509481984","ID":"55","CC4":"0","CC3":"0"}},"parameters":{"query":"someArtist","type":"Songs"},"method":"getSearchResults"}
Wie lässt sich diese Verschachtelung erzeugen ?

Gruß Yannic
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#5

AW: Json Post mit Indy ?

  Alt 24. Sep 2011, 13:25
Ich würde es mal so probieren, weiß es aber auch nicht genau:
Delphi-Quellcode:
  _lkJSONobjectparameters.Add('query', 'value');
  _lkJSONobjectparameters.Add('type', 'Songs');

  // ...
  _lkJSONobject.Add('parameters', TlkJSON.GenerateText(_lkJSONobjectparameters));
  _lkJSONobject.Add('method', 'getSearchResults');
Sebastian
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz