Einzelnen Beitrag anzeigen

Jumpy

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

AW: Auf öffentlichen Ordner in ExchangeServer ohne Outlook zugreifen

  Alt 10. Apr 2012, 10: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