AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Auf öffentlichen Ordner in ExchangeServer ohne Outlook zugreifen
Thema durchsuchen
Ansicht
Themen-Optionen

Auf öffentlichen Ordner in ExchangeServer ohne Outlook zugreifen

Ein Thema von Jumpy · begonnen am 30. Mär 2012 · letzter Beitrag vom 10. Apr 2012
Antwort Antwort
Seite 2 von 2     12   
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#11

AW: Auf öffentlichen Ordner in ExchangeServer ohne Outlook zugreifen

  Alt 10. Apr 2012, 09:34
Hallo,

nach einem kurzen Osterurlaub, versuch ich mich weiter daran, den Code aus dem vorherigen Post in Delphi umzusetzen. Erstmal versuch ich nur, die Verbindung herzustellen und ein Suchkommando zu schicken, die Antwort soll dann einfach in ein Memo geschrieben werden.

Aber ich bekomme einen Error: HTTP/1.1 400 Bad Request

Scheinbar bau ich den Request falsch zusammen?

Vielleicht ist auch die ganze Vorgehensweise falsch, da ich nicht wirklich weiß, was ich da mache.

Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
var w:TIdWebDAV;
  content:string;
  s:string;
  c:String;
  AskStream:TMemoryStream;
  ResponseStream:TStringStream;
begin
  content:='<?xml version=""1.0""?>'+
           '<g:searchrequest xmlns:g=""DAV:"">'+
           '<g:sql>'+
           'SELECT '+
           '""urn:schemas:contacts:sn"", ""urn:schemas:contacts:givenName"",'+
           '""urn:schemas:contacts:email1"", ""urn:schemas:contacts:telephoneNumber""'+
           ' FROM '+
           'Scope(''SHALLOW TRAVERSAL OF ""http://192.168.111.157/public/Kontakte""'')'+
           '</g:sql>'+
           '</g:searchrequest>"';

  ResponseStream:=TStringStream.Create(s);
  AskStream:=TMemoryStream.Create;
  w:=TIdWebDAV.Create();
  w.Request.Method:='SEARCH';
  w.Request.Username:=Username;
  w.Request.Password:=Password;
  w.Request.BasicAuthentication:=true;
  w.Request.URL:='http://192.168.111.157/public/Kontakte';
  w.Request.ContentType:='text/xml';
  AskStream.Write(content,Length(content));
  w.DAVSearch('http://192.168.111.157/public/Kontakte',-1,-1,AskStream,ResponseStream);
  Memo1.Lines.Add(ResponseStream.DataString);
  AskStream.Free;
  ResponseStream.Free;
end;
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#12

AW: Auf öffentlichen Ordner in ExchangeServer ohne Outlook zugreifen

  Alt 10. Apr 2012, 09:49
Die XML-Datei sieht komisch aus, vorallem die doppelten "".

Außerdem ist dieses als String deklariert, was spätestens ab Delphi 2009 probleme bereitet, abgesehn davon, daß diese bei dir als ANSI vorliegt, aber da in der XML keine Codierung angegeben ist, sollte sie UTF-8 sein.

Warum wird die XML per Format und nicht über eine XML-Lib erstellt.

Dazu sieht das Ganze sehr nach SOAP oder Ähnlichem aus ... wieso dann nicht gleich das richtige Protokoll und eine passende Komponente verwenden? [edit] Ach du Sch***, wer hat diese Komponente verbrochen?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (10. Apr 2012 um 09:52 Uhr)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#13

AW: Auf öffentlichen Ordner in ExchangeServer ohne Outlook zugreifen

  Alt 10. Apr 2012, 11:04
Die doppelten "" sind ein Fehler. Hab diesen Block aus der C#-Vorlage (siehe Post 10) entnommen. Da braucht man zwei "" um das erste zu maskieren.

Was die deklararion als String angeht, liegt das daran, dass ich von Streams usw. keine Ahnung habe. In der C#-Version wird es ja auch so gemacht, wie du sagst, mit nem Byte-Array, das aus einem UTF-8 codierten String erstellt wird. Ich weiß halt nur nicht, wie ich das in Delphi machen sollte.

Vielleicht kann mir generell mal wer sagen, wie man einen Stream den man senden will (das ganze wird ja in der Komponente per HTTP verssandt) erstellt/aufbaut (unabh. vom konkreten Inhalt hier).

Was den Aufbau, von dem XML angeht, so ist das halt so ein Pseudo-SQL mit dem man einen WebDAV-Server abfragen kann.
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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