Results 1 to 4 of 4

Thread: Json tekst afvangen uit een request via twebbrowser

  1. #1
    Senior Member
    Join Date
    Mar 2002
    Location
    Edam
    Posts
    370

    Question Json tekst afvangen uit een request via twebbrowser

    Hallo,

    Ik vraag informatie op via een web API die een json-string terug geeft (bv. https://api.histograph.io/search?q=Coriovallum).

    Als ik de URI voer aan een willekeurige browser dan verschijnt JSON-string "in plain text format" in de browser. Als ik het daarentegen in een tWebbrowser doe krijg ik meteen een vraag of ik het bestand wil openen/opslaan/cancelen. De JSON string lijkt daarna verdwenen.Ik wil die string graag automatisch laten verwerken

    - Een idHTTP.Get geeft een IOhandler invalid error (vanwege de HTTPS ?)
    - als ik probeer het resultaat als iHTMLdocument2 uit te lezen (in de onDownloadComplete event van de tWebbrowser) dan blijkt dat document Nil

    Hoe kan ik die tekst automatisch ophalen om te verwerken (zonder te hoeven copy/pasten ) en zonder dat de vraag openen/opslaan verschijnt?

  2. #2
    *+E13818MU01F0F* Norrit's Avatar
    Join Date
    Aug 2001
    Location
    Landgraaf
    Posts
    966
    even zoeken op de fout die je kreeg bij idHTTP.Get had je waarschijnlijk al naar de oplossing geholpen.

    Anyweg:
    Code:
    program Project6;
    
    {$APPTYPE CONSOLE}
    
    {$R *.res}
    
    uses
      System.SysUtils, System.Classes, IdHTTP, IdGlobal, IdSSLOpenSSL;
    
    var
      http: TIdHTTP;
      ResponseBody: String;
    begin
      http := TIdHTTP.Create();
      try
        http.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
        ResponseBody := http.Get('https://api.histograph.io/search?q=Coriovallum');
        WriteLn(ResponseBody);
      finally
        http.Free();
      end;
      Readln;
      ReportMemoryLeaksOnShutdown := True;
    end.
    Objective reality is a delirium caused by lack of alcohol in blood

  3. #3
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,377
    Uiteraard niet vergeten om de SSL-DLL's (libeay32.dll en ssleay32.dll) in dezelfde map als de applicatie te stoppen.
    TMemoryLeak.Create(Nil);

  4. #4
    Senior Member
    Join Date
    Mar 2002
    Location
    Edam
    Posts
    370
    ... ah Sorry,
    Ik had inderdaad al gezien dat die IOHandler fout samenhing met het ontbreken van de TIdSSLIOHandlerSocketOpenSSL maar wilde die niet gebruiken juist vanwege het noodzakelijke meeleveren (of inbakken) van dll's. De tWebbrowser object geeft zonder extra toeters en bellen klaarblijkelijk gewoon toegang tot de raw json-string. Het moet dan toch mogelijk zijn om die daar op een of andere manier direct uit te halen, of via een omweg door bv. het downloaden van de string als file te onderscheppen en door te sluizen naar een variabele. Of dat wat te simplistisch gedacht?

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •