Verbindung mit bestehendem Server

Alle Fragen zur Netzwerkkommunikation
wbeppler
Beiträge: 131
Registriert: So 20. Jul 2014, 10:27
OS, Lazarus, FPC: kubuntu, raspbian, laz 1.2 / 0.9 microcontroller
CPU-Target: 8-64 bit
Wohnort: bodensee
Kontaktdaten:

Re: Verbindung mit bestehendem Server

Beitrag von wbeppler »

wie recht du hast, die svn !

habe mit totorviseSVN oder wie s heisst versucht mein win-lazarus zu aktualisieren abe rnicht hinbekommen, hast du da ne anleitung ? unter lin hab ich es hingekriegt weil ich CUT u PASTE mit dem sudo-commando machen konnte, aber unter win ?

zum einnen wird doch der pfad im internet angegegeben und zum anderen der pfad wo der lazarus istalliert ist oder etwa nicht ? bei mir lief es durch und zeigte verify und add anchmal an, danach hatte ich aber immer noch die selber Rnummer

???

und die SVN ist SOOOO wichtig !!!

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Verbindung mit bestehendem Server

Beitrag von Michl »

@wbeppler: einen gangbaren Weg unter Windows hatte ich schon mehrfach hier gepostet:
http://www.lazarusforum.de/viewtopic.php?p=68169#p68169
oder
http://www.lazarusforum.de/viewtopic.php?p=72725#p72725

PS: Ach ja, ich weiss nicht, ob du auf meinen Kommentar Wert legtest, doch ich hatte kurz in eine ähnliche Richtung gedacht, wie 4Ms von diesem Forum http://evo-forum.de/index.php/Thread/33475-Aufruf-zum-Ignorieren-der-notorischen-Kleinschreiber/

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Verbindung mit bestehendem Server

Beitrag von m.fuchs »

creed steiger schrieb aber wohl über die SVN-Version von Synapse!
Die man übrigens problemlos einfach mit dem Browser downloaden kann: http://sourceforge.net/p/synalist/code/HEAD/tree/trunk/
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

wbeppler
Beiträge: 131
Registriert: So 20. Jul 2014, 10:27
OS, Lazarus, FPC: kubuntu, raspbian, laz 1.2 / 0.9 microcontroller
CPU-Target: 8-64 bit
Wohnort: bodensee
Kontaktdaten:

Re: Verbindung mit bestehendem Server

Beitrag von wbeppler »

Michl hat geschrieben:@wbeppler:
PS: Ach ja, ich weiss nicht, ob du auf meinen Kommentar Wert legtest, ...


Nach dem die ersten beiden Links so gut waren, habe ich den dritten Link natürlich auch besucht und sage dazu folgendes:
Seit meinem Unfall vor 5 Jahren ist es für mich schon lästig, mit links zur Maus zu greifen, mein rechter Arm ist kaum zu gebrauchen. Ich gebe aber zu, seit der 8. OP diesen Jannuar kann ich die rechte Hand wieder an die Tastatur legen und somit eigentlich wieder groß schreiben, insbesonders dann, wenn mir wie hier, so gut geholfen wird. Aus Angst von den guten Menschen ignoriert zu werden, werde ich mich in Zukunft anstrengen. Was aber halt mir auf den Seier geht, ist dass ich in jedem Forum staendig angemeckert werde, ist es wegen der Kleinschreibung, den Umlauten, weil ich das Problem nicht ausgiebig genug ergoogelt habe, weil ich mal was salopp ausdrücke oder wegen was auch immer, staendig versuchen mich Leute zu erziehen. Ich bin 49 Jahre alt und versuche mich in Foren wie diesem hier, durch den Dschungel der Programmierung zu kämpfen und anderen, die noch weniger wie ich können, auch zu helfen. Dabei kann ich es mir verkneifen, denen zu schreiben, was sie alles falsch machen.

In diesem Sinne, ich bemühe mich,

DANKE

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Verbindung mit bestehendem Server

Beitrag von Michl »

Danke!

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

ChrisvB
Beiträge: 38
Registriert: Mi 15. Apr 2015, 09:00
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Verbindung mit bestehendem Server

Beitrag von ChrisvB »

weiß jetzt, wo mein Problem lag ...

Https !!!

gibt es inzwischen eine Möglichkeit, wie ich mein Beispiel in Https umändern kann ?

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Verbindung mit bestehendem Server

Beitrag von Komoluna »

synapse macht das automatisch, wenn https:// in der url enthalten ist. mit anderen netlibs kenn ich mich nicht aus.
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Verbindung mit bestehendem Server

Beitrag von theo »

Komoluna hat geschrieben:synapse macht das automatisch, wenn https:// in der url enthalten ist. mit anderen netlibs kenn ich mich nicht aus.

Muss man nicht doch eine Plugin Unit einbinden? z.B. uses ssl_openssl ?
http://synapse.ararat.cz/doku.php/publi ... :sslplugin

Oder hat sich das geändert?

ChrisvB
Beiträge: 38
Registriert: Mi 15. Apr 2015, 09:00
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Verbindung mit bestehendem Server

Beitrag von ChrisvB »

Okay hab mich jetzt etwas mit Synapse befasst.

Entweder hab ich das Package falsch eingebunden oder ich mach einen anderen Denkfehler.

Könnte vielleicht mal jemand anhand von Beispielcode darstellen was man schreiben müsste damit es funktioniert :)

Danke

ChrisvB
Beiträge: 38
Registriert: Mi 15. Apr 2015, 09:00
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Verbindung mit bestehendem Server

Beitrag von ChrisvB »

function HttpPostURL(const URL, URLData: string; const Data: TStream): Boolean;

Code: Alles auswählen

   var
  HTTP: THTTPSend;
  s : string;
begin
  HTTP := THTTPSend.Create;
  try
   WriteStrToStream(HTTP.Document, s);
    HTTP.MimeType := 'application/x-www-form-urlencoded';
    Result := HTTP.HTTPMethod('POST', 'URL');
    if Result then
      Data.CopyFrom(HTTP.Document, 0);
  finally
    HTTP.Free;
  end;
end;
 
 
 
 
procedure TForm1.Button1Click(Sender: TObject);
 
  var
    URL: string;
    Params: string;
    Response: TMemoryStream;
 
begin
  Response := TMemoryStream.Create;
 
  try
    URL := '';
 
    Params := '';
            if HttpPostURL(URL, Params, Response) then
      Response.SaveToFile('C:\');
 
  finally
    Response.Free;
  end;
 
 
end;
 
end.

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Verbindung mit bestehendem Server

Beitrag von theo »

In der vollen Version sind auch Demos dabei. http://synapse.ararat.cz/lib/exe/fetch. ... apse40.zip
Hast du dir die mal angeschaut?

Und dann auch einfach mal Hirn einschalten.
Was soll das bewirken, wenn beide Parameter soeben deklariert wurden und somit "leer" sind?

Code: Alles auswählen

WriteStrToStream(HTTP.Document, s);


Aber eigentlich hatte ich dir hier schon den Link geschickt: viewtopic.php?p=77305#p77305
Die Hilfe lesen musst du halt schon selber.

wbeppler
Beiträge: 131
Registriert: So 20. Jul 2014, 10:27
OS, Lazarus, FPC: kubuntu, raspbian, laz 1.2 / 0.9 microcontroller
CPU-Target: 8-64 bit
Wohnort: bodensee
Kontaktdaten:

Re: Verbindung mit bestehendem Server

Beitrag von wbeppler »

Hi ChisvB,

folgender Beispielcode holt ne Datei aus den web und speichert diese lokal ab unter Zuhilfenahme von Synapse. Vieleicht kannst da was abschauen.

Code: Alles auswählen

 
unit Unit1;
{$mode objfpc}{$H+}
interface
 
uses
  Classes, SysUtils, dbf, db, FileUtil, Forms, Controls, Graphics, Dialogs,
  StdCtrls, ExtCtrls, httpsend;
 
type
 
  { TWebKurse }
 
  TWebKurse = class(TForm)
    BQuelleInsZiel: TButton;
    EQuelle: TEdit;
    EZiel: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Memo1: TMemo;
    SAmpel: TShape;
    procedure BQuelleInsZielClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  WebKurse: TWebKurse;
 
implementation
 
{$R *.lfm}
 
{ TWebKurse }
 
procedure TWebKurse.BQuelleInsZielClick(Sender: TObject);
var
  URL: String;
  TargetFile: String;
  HTTPGetResult: Boolean;
  HTTPSender: THTTPSend;
begin
  URL:=EQuelle.Text ;
  TargetFile:= EZiel.Text;
  SAmpel.Brush.Color := clRed;
  HTTPSender := THTTPSend.Create;
  try
    HTTPGetResult := HTTPSender.HTTPMethod('GET', URL);
    if (HTTPSender.ResultCode >= 100) and (HTTPSender.ResultCode<=299) then begin
       HTTPSender.Document.SaveToFile(TargetFile);
       SAmpel.Brush.Color := clGreen;
       Memo1.Lines.LoadFromFile(TargetFile);
    end;
  finally
    HTTPSender.Free;
  end;
end;
end.
 

Die Ampel dabei zeigt an ob es geklappt hat. Kannst ja mal versuchen das so zusammen zustellen, bei Problemen mit Synapse selber kann es sein, dass Du Compilereinstellungen veraendern musst und den Pfad zu den Synapse-Libs noch angeben musst. Beschreib doch einfach dein Problem dann noch etwas genauer falls Du es nach diesem Beispiel noch hast.

Gruss

w.

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Verbindung mit bestehendem Server

Beitrag von theo »

wbeppler hat geschrieben:folgender Beispielcode holt ne Datei aus den web und speichert diese lokal ab unter Zuhilfenahme von Synapse. Vieleicht kannst da was abschauen.

Der TE benötigt POST nicht GET.
Ein Beispiel dafür hatte ich am 17/4/2015, 16:36 verlinkt, das wurde aber irgendwie nicht zur Kenntnis genommen.
Hier also nochmal: http://stackoverflow.com/questions/6291 ... pse-delphi

wbeppler hat geschrieben:bei Problemen mit Synapse selber kann es sein, dass Du Compilereinstellungen veraendern musst und den Pfad zu den Synapse-Libs noch angeben musst.

Den Pfad angeben ist nicht Lazarus like.
Synapse hat ein Package laz_synapse.lpk.
Das öffnet man einmal und kompiliert es.
Danach fügt man jeweils bei Bedarf dem Projekt die Abhängigkeit hinzu:
Projektinspektor -> Hinzufügen -> "Neue Anforderung"

wbeppler hat geschrieben:Beschreib doch einfach dein Problem dann noch etwas genauer

Gute Idee.

ChrisvB
Beiträge: 38
Registriert: Mi 15. Apr 2015, 09:00
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Verbindung mit bestehendem Server

Beitrag von ChrisvB »

Lieber Theo,

wie Sie wahrscheinlich selbst nicht bemerkt haben, habe ich mir Ihren Link angeguckt, wie man auch in meinem Quelltext sieht.

Ich hab nur das Problem, wenn ich bei URL die Adresse und bei Params die Parameter eingebe, sendet die Anwendung nichts an den Server. Hab das mal mit WireShark geprüft.

Die Frage ist nun, ob ich iwo etwas falsch eintrage ?

Und ja WriteStrToStream(HTTP.Document, s) wurde auch geändert

BeniBela
Beiträge: 308
Registriert: Sa 21. Mär 2009, 17:31
OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4)
CPU-Target: 64 Bit

Re: Verbindung mit bestehendem Server

Beitrag von BeniBela »

Es gibt auch noch meine Internet Tools

Für ein Request sind die zwar Overkill, aber es geht so:

Code: Alles auswählen

 
uses simpleinternet, bbutils;
strSaveToFileUTF8('C:\temp\datei-zum-speichern', httpRequest('https://servername/url-wo-die-daten-hin-sollen', 'lname=[...]&lpass=[...]&langsel='));
 


Oder dynamischer:

Code: Alles auswählen

 
uses simpleinternet, bbutils;
strSaveToFileUTF8('C:\temp\datei-zum-speichern', httpRequest(process('https://servername/url-wo-das-formular-ist', 'form(//form, {"lname": "[...]", "lpass": "[...]"})')));
 


edit: hatte "form" im 2.ten Beispiel vergessen, ohne wird das nix

Antworten