Ureader.com  
Microsoft software help and Community
   home   |   control panel login   |   archive   |  
 
Exchange
2000.active.directory
2000.admin
2000.announcements
2000.app.conversion
2000.applications
2000.clients
2000.clustering
2000.connectivity
2000.development
2000.documentation
2000.general
2000.information.store
2000.interop
2000.kms
2000.misc
2000.protocols
2000.realtime.collabo.
2000.setup
2000.transport
2000.win2000
admin
application.conversion
applications
clients
clustering
connectivity
design
development
misc
mobility
setup
tools
  
 
date: Tue, 4 Dec 2007 23:15:00 -0800,    group: microsoft.public.exchange.development        back       


Try to get list of folders using webDav   
Hi, 

I am trying to get a list of foders using webdav. I took the script from the 
msdn site.
We use exchange 2003 . 
The build of the project succeeded but an error occured on this row :
Response = (HttpWebResponse)Request.GetResponse();
The error mesage is - The remote server returned an error: (404) Not Found.
I thought that the problem is in this url - 
string strRootURI = http://mailit.com/exchange/davide/;
but when I try it in the IE , I see my inbox. 

1. How can I solve this problem ?
2. I don't know the special exchange sql syntax - 
Code BlockstrQuery = "<?xml version=\"1.0\"?><D:searchrequest xmlns:D = 
\"DAV:\" >";
strQuery += "<D:sql>SELECT \"DAV:href\" FROM scope('hierarchical traversal 
of \"";
strQuery += strRootURI + "\"')</D:sql></D:searchrequest>";

I know the sql server sql syntax but it's different.
Where I can learn about it ?

Thanks,
David

using System;

using System.Net;

using System.IO;

using System.Text;

using System.Xml;

namespace ExchangeSDK.Snippets.CSharp

{

class GettingListOfFoldersWebDAV

{

[STAThread]

static void Main(string[] args)

{

// Variables.

System.Net.HttpWebRequest Request;

System.Net.WebResponse Response;

System.Net.CredentialCache MyCredentialCache;

 
string strRootURI = http://mailit.com/exchange/davide/;

string strUserName = "a0elbaz";

string strPassword = "123456";

string strDomain = "moia";

string strQuery = "";

byte[] bytes = null;

System.IO.Stream RequestStream = null;

System.IO.Stream ResponseStream = null;

System.Xml.XmlTextReader XmlReader = null;

try

{

// Build the SQL query.

strQuery = "";

strQuery += "SELECT \"DAV:href\" FROM scope('hierarchical traversal of \"";

strQuery += strRootURI + "\"')";

// Create a new CredentialCache object and fill it with the network

// credentials required to access the server.

MyCredentialCache = new System.Net.CredentialCache();

MyCredentialCache.Add(new System.Uri(strRootURI),

"NTLM",

new System.Net.NetworkCredential(strUserName, strPassword, strDomain)

);

// Create the HttpWebRequest object.

Request = (System.Net.HttpWebRequest)HttpWebRequest.Create(strRootURI);

// Add the network credentials to the request.

Request.Credentials = MyCredentialCache;

// Specify the method.

Request.Method = "SEARCH";

// Encode the body using UTF-8.

bytes = Encoding.UTF8.GetBytes((string)strQuery);

// Set the content header length. This must be

// done before writing data to the request stream.

Request.ContentLength = bytes.Length;

// Get a reference to the request stream.

RequestStream = Request.GetRequestStream();

// Write the SQL query to the request stream.

RequestStream.Write(bytes, 0, bytes.Length);

// Close the Stream object to release the connection

// for further use.

RequestStream.Close();

// Set the content type header.

Request.ContentType = "text/xml";

// Send the SEARCH method request and get the

// response from the server.

Response = (HttpWebResponse)Request.GetResponse();

// Get the XML response stream.

ResponseStream = Response.GetResponseStream();

// Create the XmlTextReader object from the XML

// response stream.

XmlReader = new XmlTextReader(ResponseStream);

// Read through the XML response, node by node.

while (XmlReader.Read())

{

// Look for the opening DAV:href node. The DAV: namespace is

//typically assigned the a: prefix in the XML response body.

if (XmlReader.Name == "a:href")

{

// Advance the reader to the text node.

XmlReader.Read();

// Display the value of the DAV:href text node.

Console.WriteLine("Value: " + XmlReader.Value);

Console.WriteLine("");

//Advance the reader to the closing DAV:href node.

XmlReader.Read();

}

}

// Clean up.

XmlReader.Close();

ResponseStream.Close();

Response.Close();

}

catch (NotSupportedException ex)

{

Console.WriteLine(ex.Message);

Console.ReadLine();

}

catch (WebException ex)

{

Console.WriteLine(ex.Message);

Console.ReadLine();

} 

catch (ProtocolViolationException ex)

{

Console.WriteLine(ex.Message);

Console.ReadLine();

}

catch (InvalidOperationException ex)

{

Console.WriteLine(ex.Message);

Console.ReadLine();

}

catch (Exception ex)

{

// Catch any exceptions. Any error codes from the SEARCH

// method request on the server will be caught here, also.

Console.WriteLine(ex.Message);

Console.ReadLine();

}
}
}
}
date: Tue, 4 Dec 2007 23:15:00 -0800   author:   DavidE

Google
 
Web ureader.com


    COPYRIGHT 2007, YARDI TECHNOLOGY LIMITED, ALL RIGHT RESERVE  |   contact us