In the code window, replace the code with the following:
Imports System.Net
Imports System.IO
Module Module1
Sub Main()
' TODO: Replace with your folder URL.
Dim sUri As String = "http://ExchServer/public/"
Dim myUri As System.Uri = New System.Uri(sUri)
Dim HttpWRequest As HttpWebRequest = WebRequest.Create(myUri)
Dim sQuery As String
sQuery = "<?xml version='1.0'?>" & _
"<g:searchrequest xmlns:g='DAV:'>" & _
"<g:sql>SELECT ""DAV:displayname"" " & _
"FROM SCOPE('SHALLOW TRAVERSAL OF """ & sUri & """')"
' TODO: Make DAV:isfolder = true if you want to retrieve subfolders,
' and make DAV:isfolder = false to retrieve items.
sQuery = sQuery & " WHERE ""DAV:isfolder"" = false" & _
"</g:sql>" & _
"</g:searchrequest>"
' TODO: Replace with the appropriate user credentials.
Dim myCred As NetworkCredential = New NetworkCredential("Domain\UserName", "Password")
Dim MyCredentialCache As CredentialCache = New CredentialCache()
MyCredentialCache.Add(myUri, "Basic", myCred)
HttpWRequest.Credentials = MyCredentialCache
'Set the headers.
HttpWRequest.KeepAlive = False
HttpWRequest.Headers.Set("Pragma", "no-cache")
HttpWRequest.Headers.Set("Translate", "f")
HttpWRequest.Headers.Set("Depth", "0")
HttpWRequest.ContentType = "text/xml"
HttpWRequest.ContentLength = sQuery.Length
'Set the request timeout to 5 minutes.
HttpWRequest.Timeout = 300000
' set the request method
HttpWRequest.Method = "SEARCH"
'Store the data in a byte array.
Dim ByteQuery() As Byte = System.Text.Encoding.ASCII.GetBytes(sQuery)
HttpWRequest.ContentLength = ByteQuery.Length
Dim QueryStream As Stream = HttpWRequest.GetRequestStream()
' write the data to be posted to the Request Stream
QueryStream.Write(ByteQuery, 0, ByteQuery.Length)
QueryStream.Close()
' Send the request and get the response.
Dim HttpWResponse As HttpWebResponse = HttpWRequest.GetResponse()
' Get the status and the headers.
Dim iStatCode As Integer = HttpWResponse.StatusCode
Dim sStatus As String = iStatCode.ToString()
Console.WriteLine("Status: {0} {1}", sStatus, HttpWResponse.StatusDescription.ToString())
Console.WriteLine("Request Headers:")
Console.WriteLine(HttpWRequest.Headers.ToString())
Console.WriteLine("Response Headers:")
Console.WriteLine(HttpWResponse.Headers.ToString())
' Get the response stream.
Dim strm As Stream = HttpWResponse.GetResponseStream()
' Read the response stream.
Dim sr As StreamReader = New StreamReader(strm)
Dim sText As String = sr.ReadToEnd()
Console.WriteLine("Response: {0}", sText)
' Close the stream.
strm.Close()
' Clean up
HttpWRequest = Nothing
HttpWResponse = Nothing
MyCredentialCache = Nothing
myCred = Nothing
strm = Nothing
sr = Nothing
End Sub
End Module
|