🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.delphi
8 messages
8 total messages Started by konsul41 Wed, 09 May 2018 13:10
Baza Regon
#346597
Author: konsul41
Date: Wed, 09 May 2018 13:10
56 lines
2549 bytes
Czego używacie do pobierania danych z REGONU w Windows10

ICS ma problemy z DNS
A indy z ssl (długość klucza)

function SendData(SessionID: string; Akcja: string; Dane: string; URL: 
string = URL_service): string;
var
   Cli: TIdHttp;
   SSLContext: TIdSSLIOHandlerSocketOpenSSL;
   strm: tstringlist;
   Bytes: TBytes;
   i, j: Integer;
begin
   Cli := TIdHTTP.Create(nil);
   SSLContext := TIdSSLIOHandlerSocketOpenSSL.Create(Cli);
   SSLContext.SSLOptions.SSLVersions := [sslvSSLv2, sslvSSLv23, 
sslvSSLv3, sslvTLSv1];
   Cli.IOHandler := SSLContext;
   try
     result := '';
     Cli.Request.Clear;
...
     Cli.Request.Method := 'POST';
     if SessionID <> '' then
       Cli.Request.CustomHeaders.Add('Sid: ' + SessionID);
     strm := TStringList.Create;
     try
       try
         strm.text := Dane;
       except
         on E: Exception do
           ShowMessage('SendData -> strm.text' + #13 + 'DANE ' + #13 + 
Dane + #13 + E.Message);
       end;
       Cli.Response.CharSet := 'UTF-8';
       try
         result := Cli.Post(URL, strm);
       except
         on E: Exception do
           ShowMessage('SendData Post Error' + #13 + E.Message);
       end;
     finally
       strm.free;
     end;
   finally
     Cli.IOHandler := nil;
     Cli.Request.Clear;
     FreeAndNil(Cli);
     FreeAndNil(SSLContext);
   end;
end;


Non stop mam Accesviolation w libeay32.dll
przy wołaniu result := Cli.Post(URL, strm);
Re: Baza Regon
#346598
Author: Jan Drawski
Date: Wed, 09 May 2018 23:05
11 lines
1226 bytes
W dniu 2018-05-09 o 15:10, konsul41@wp.pl pisze:
> Czego używacie do pobierania danych z REGONU w Windows10
> 
> ICS ma problemy z DNS

To obsłuż DNS po za ICS. Wstaw IP zamiast domeny i do nagłówka wstaw 
hosta (domenę).

-- 
Pozdrawiam
Janek
Re: Baza Regon
#346600
Author: Tomek D
Date: Thu, 10 May 2018 06:29
10 lines
1133 bytes
W dniu 09.05.2018 o 15:10, konsul41@wp.pl pisze:
> Czego używacie do pobierania danych z REGONU w Windows10
> 
> ICS ma problemy z DNS A indy z ssl (długość klucza)
> 

XE6 THTTPRIO - w tej wersji, o ile pamiętam, korzysta z bibliotek 
systemowych i nie wymaga OpenSSL.

Tomek D.
Re: Baza Regon
#346599
Author: kameleonsql
Date: Thu, 10 May 2018 09:00
64 lines
3168 bytes
W dniu środa, 9 maja 2018 15:10:45 UTC+2 użytkownik kons...@wp.pl napisał:
> Czego używacie do pobierania danych z REGONU w Windows10
> 
> ICS ma problemy z DNS
> A indy z ssl (długość klucza)
> 
> function SendData(SessionID: string; Akcja: string; Dane: string; URL: 
> string = URL_service): string;
> var
>    Cli: TIdHttp;
>    SSLContext: TIdSSLIOHandlerSocketOpenSSL;
>    strm: tstringlist;
>    Bytes: TBytes;
>    i, j: Integer;
> begin
>    Cli := TIdHTTP.Create(nil);
>    SSLContext := TIdSSLIOHandlerSocketOpenSSL.Create(Cli);
>    SSLContext.SSLOptions.SSLVersions := [sslvSSLv2, sslvSSLv23, 
> sslvSSLv3, sslvTLSv1];
>    Cli.IOHandler := SSLContext;
>    try
>      result := '';
>      Cli.Request.Clear;
> ...
>      Cli.Request.Method := 'POST';
>      if SessionID <> '' then
>        Cli.Request.CustomHeaders.Add('Sid: ' + SessionID);
>      strm := TStringList.Create;
>      try
>        try
>          strm.text := Dane;
>        except
>          on E: Exception do
>            ShowMessage('SendData -> strm.text' + #13 + 'DANE ' + #13 + 
> Dane + #13 + E.Message);
>        end;
>        Cli.Response.CharSet := 'UTF-8';
>        try
>          result := Cli.Post(URL, strm);
>        except
>          on E: Exception do
>            ShowMessage('SendData Post Error' + #13 + E.Message);
>        end;
>      finally
>        strm.free;
>      end;
>    finally
>      Cli.IOHandler := nil;
>      Cli.Request.Clear;
>      FreeAndNil(Cli);
>      FreeAndNil(SSLContext);
>    end;
> end;
> 
> 
> Non stop mam Accesviolation w libeay32.dll
> przy wołaniu result := Cli.Post(URL, strm);

Serwus,
Kup wreszcie SecureBlackbox'a, szkoda nerwów na "rzeźbienie" tego typu softu w "czystym" Delphi

Pozdrawiam
---
Roman
Re: Baza Regon
#346601
Author: konsul41
Date: Thu, 10 May 2018 09:28
75 lines
2869 bytes
W dniu 10-05-2018 o 08:29, Tomek D pisze:
> W dniu 09.05.2018 o 15:10, konsul41@wp.pl pisze:
>> Czego używacie do pobierania danych z REGONU w Windows10
>>
>> ICS ma problemy z DNS A indy z ssl (długość klucza)
>>
> 
> XE6 THTTPRIO - w tej wersji, o ile pamiętam, korzysta z bibliotek 
> systemowych i nie wymaga OpenSSL.
> 
> Tomek D.
> 

Próbuje na XE10.2

i rzeczywiście nie wymaga.


Ale mam inny problem

robię dll
z jedną funkcją

function SendData(SessionID, Akcja, Dane, URL: String): UTF8String; stdcall;
var
   Cli: TIdHttp;
   strm: tStringlist;
   Bytes: TBytes;
   i, j: Integer;
begin
   Cli := TIdHTTP.Create();
   try
     result := '';
     Cli.Request.Clear;
     Cli.HTTPOptions := [];
     Cli.Request.CharSet := 'UTF-8';
     Cli.Request.ContentType := 'application/soap+xml';
     Cli.Request.Method := 'POST';
     if SessionID <> '' then
       Cli.Request.CustomHeaders.Add('Sid: ' + SessionID);
     strm := TStringList.Create;
     try
       strm.text := Dane;
       Cli.Response.CharSet := 'UTF-8';
       result := Cli.Post(URL, strm);
     finally
       strm.free;
     end;
   finally
     Cli.Free;
   end;
end;

Jest to funkcja odpowiedzialna za wysyłania żądań do serwera
I teraz jeżeli użyję tej funkcji w applikacji (ciało funkcji w 
applikacji) to wszystko działa ok, jeżeli ciało tej funkcji znajduję się 
w dll i jest zaimportowany do EXE w taki sposób

function SendData(SessionID, Akcja, Dane, URL: String): UTF8String; 
stdcall; external 'NipyDLL.dll';

czyli statycznie to przy drugim i każdym następnym dostaję 
AccesViolation w linii

Cli := TIdHTTP.Create();
Jeżeli dołożę

     Cli.Request.Free;
     Cli.Response.Free;
     Cli.Free;
zamiast samego
     Cli.Free;
To wiesza mi się na zwalnianiu obiektu Cli: TIdHttp;

Czy ktoś miał takie problemy?
Re: Baza Regon
#346602
Author: Piotr S.
Date: Thu, 10 May 2018 09:33
11 lines
1226 bytes
W dniu 2018-05-10 o 11:28, konsul41@wp.pl pisze:
> 
> function SendData(SessionID, Akcja, Dane, URL: String): UTF8String; 
> stdcall; external 'NipyDLL.dll';
> 
> 

Użyj lepiej PChar zamiast stringa. Nie wiesz, że nie powinno się w 
procedurach wyeksportowanych w dll używać stringa?

P.S.
Re: Baza Regon
#346603
Author: konsul41
Date: Thu, 10 May 2018 09:59
14 lines
1455 bytes
W dniu 10-05-2018 o 11:33, Piotr S. pisze:
> W dniu 2018-05-10 o 11:28, konsul41@wp.pl pisze:
>>
>> function SendData(SessionID, Akcja, Dane, URL: String): UTF8String; 
>> stdcall; external 'NipyDLL.dll';
>>
>>
> 
> Użyj lepiej PChar zamiast stringa. Nie wiesz, że nie powinno się w 
> procedurach wyeksportowanych w dll używać stringa?
> 
> P.S.
> 
Dlaczego przecież można tylko trzeba użyć ShareMem
Re: Baza Regon
#346604
Author: konsul41
Date: Thu, 10 May 2018 10:34
3 lines
1252 bytes
 > Dlaczego przecież można tylko trzeba użyć ShareMemDodatkowo Ja nie 
mam problemów z parametrami tylko z tworzeniem i zwalnianiem obiektu IDHTTP
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads