AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

idHTTP Komponente

Ein Thema von strom · begonnen am 19. Jan 2016 · letzter Beitrag vom 19. Jan 2016
Antwort Antwort
strom

Registriert seit: 23. Aug 2008
Ort: Keine Ergebnisse gefunden
288 Beiträge
 
#1

idHTTP Komponente

  Alt 19. Jan 2016, 20:26
hallo,

bekomme immer eine Fehlermeldung
was ist hier falsch?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 request,content : string;
  i : Integer;
begin
  content := 'type=pocsag&address=1234567&flags=0&function=a&message=hallo1111';
  request := 'POST /telegramin/alarmgeber/input.xml HTTP/1.1';
  idHTTP1.Request.Charset := 'utf-8';
  idHTTP1.Request.BasicAuthentication := true;
  idHTTP1.Request.Username := '******';
  idHTTP1.Request.Password := '******';
  idHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
  idHTTP1.Request.Host := '192.168.0.69';
  idHTTP1.IOHandler.WriteLn(request);
  idHTTP1.IOHandler.WriteLn(request);
   for I := 1 to 20 do
    Memo1.Lines.Add(idhttp1.IOHandler.ReadLn);
   idHTTP1.Disconnect;
end;
Miniaturansicht angehängter Grafiken
delphipraxis.png  
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

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

AW: idHTTP Komponente

  Alt 19. Jan 2016, 21:23
Hallo strom,

du musst den IOHandler initialisieren:

idHTTP1.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil); Ich würde es eher so machen:
Delphi-Quellcode:
var
  params: TStringList;
  request, content, response: string;
  // i: Integer;
begin
  IdHTTP1.request.Charset := 'utf-8';
  IdHTTP1.request.BasicAuthentication := true;
  IdHTTP1.request.Username := '******';
  IdHTTP1.request.Password := '******';
  IdHTTP1.request.ContentType := 'application/x-www-form-urlencoded';
  IdHTTP1.request.Host := '192.168.0.69';

  params := TStringList.Create;
  try
    params.Add('type=pocsag');
    params.Add('address=1234567');
    params.Add('flags=0');
    params.Add('function=a');
    params.Add('message=hallo1111');

    response := IdHTTP1.Post('http://192.168.0.69/telegramin/alarmgeber/input.xml', params); // Hier ist der POST-Request
  finally
    params.Free;
  end;
end;
Mit dem ganz neuen Indy Build wird der IOHandler jetzt auch automatisch initialisiert (ich glaube aber nur wenn man dies über die GET, POST, ... Funktionen abwickelt).

Siehe auch: http://www.delphipraxis.net/160152-i...protokoll.html

EDIT: Ich habe gerade nachgeschaut. Wie ich schon sagte, mit den neuen Indy's wird der IOHandler automatisch erstellt (Typ: TIdSSLIOHandlerSocketBase; siehe: CheckAndConnect()). Dies wird aber erst durch ConnectToHost() und dies durch DoRequest() aufgerufen, welches die ganzen GET, POST, HEAD usw. bündelt. Also allein die Erzeugung der TIdHTTP Komponente reicht nicht aus (was ich schon sagte).
Sebastian

Geändert von geskill (19. Jan 2016 um 21:50 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 04:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf