Jump to content

How to use TNetHTTPClient in unigui


stevewong

Recommended Posts

Hi,

Can anyone tell me how to use TNetHTTPClient in unigui app.

I was trying to make some RESTFUL call in my unigui app. However, whenever I try to do :

http := TNetHTTPClient.create;

in my unigui app, I got an exception : Net HTTPClientException : Error obtaining session handle

I then try to put the TNetHTTPClient component into mainmodule so that I do not need to create it. However, the unigui app give me a blank screen when I try to access the unigui page (e.g. https//x.com/app.dll).

I was using Delphi 10.3.2, web server is windows server IIS 7, unigui version 1.90.0.1511

Or can anyone tell me to issue Restful call within the unigui app, thanks !

Link to comment
Share on other sites

I tried with Indy ThttpClient. the code then stopped at the statement http.post(.....), with an invalid address exception. The same set of http.post(...) code was working fine under VCL. so I do suspected that I can not use ThttpClient or TNetHTTPclient in the hyperserver + IIS enviroment.

Link to comment
Share on other sites

I believe Kenneth is not referring to the indy client. Instead the delphi native one - that is built on the windows version (works on modern versions of windows). 

uses
     System.net.Httpclient;

var
     Http: THttpclient;

Shorted working example from unigui

     Http:=THttpclient.Create;
     try
          Res:=Http.Get('https://integration.com/api/v2/orders/' + OrderID.ToString + '?token=' + TheirToken);
          if Res = nil then
          begin
               ShowMessage('Error in retrieving OrderID ' + OrderID.ToString + ' from X! Respons is empty!');
               exit;
          end;
          if Res.StatusCode = 200 then
          begin
               TheOrder:=TOrderClass.FromJsonString(Res.contentasString(Tencoding.UTF8));
          end
          else
          begin
               ShowMessage('Did''t get Result 200 in reply from X! Result = ' + Res.StatusCode.ToString + ' ' + Res.StatusText);
          end;
     finally
          Http.Free;
     end;

Some more info from Embarcadero

http://docwiki.embarcadero.com/Libraries/Sydney/en/System.Net.HttpClient.THTTPClient

But perhaps your problems indicate some other problems in your code? Are you perhaps creating the client to early? Would suggest that you create it as my sample - in the procedure where you use it.

Link to comment
Share on other sites

On 10/7/2020 at 1:18 PM, alfr said:

I believe Kenneth is not referring to the indy client. Instead the delphi native one - that is built on the windows version (works on modern versions of windows). 

uses
     System.net.Httpclient;

var
     Http: THttpclient;

Shorted working example from unigui




     Http:=THttpclient.Create;
     try
          Res:=Http.Get('https://integration.com/api/v2/orders/' + OrderID.ToString + '?token=' + TheirToken);
          if Res = nil then
          begin
               ShowMessage('Error in retrieving OrderID ' + OrderID.ToString + ' from X! Respons is empty!');
               exit;
          end;
          if Res.StatusCode = 200 then
          begin
               TheOrder:=TOrderClass.FromJsonString(Res.contentasString(Tencoding.UTF8));
          end
          else
          begin
               ShowMessage('Did''t get Result 200 in reply from X! Result = ' + Res.StatusCode.ToString + ' ' + Res.StatusText);
          end;
     finally
          Http.Free;
     end;

Some more info from Embarcadero

http://docwiki.embarcadero.com/Libraries/Sydney/en/System.Net.HttpClient.THTTPClient

But perhaps your problems indicate some other problems in your code? Are you perhaps creating the client to early? Would suggest that you create it as my sample - in the procedure where you use it.

 

Try use 
restrequest4delphi

https://blogs-embarcadero-com.cdn.ampproject.org/c/s/blogs.embarcadero.com/powerful-open-source-restrequest4delphi-makes-rest-easy-in-delphi/amp/

  • Like 1
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...