Microsoft KB Archive/314197

= How to use the HttpWebRequest class and the HttpWebResponse class to retrieve the properties of an object in Visual Basic .NET =

Article ID: 314197

Article Last Modified on 4/14/2004

-

APPLIES TO


 * Microsoft Visual Basic .NET 2002 Standard Edition
 * Microsoft Visual Basic .NET 2003 Standard Edition
 * Microsoft Exchange 2000 Server Standard Edition

-



This article was previously published under Q314197





For a Microsoft Visual C# .NET version of this article, see 313123.



SUMMARY
This article describes how to use the HttpWebRequest class with the PROPFIND method and the HttpWebResponse class from the &quot;System.Net&quot; namespace to retrieve the properties of an object on a computer that is running Microsoft Exchange 2000 Server in Microsoft Visual Basic .NET.



MORE INFORMATION
To retrieve the properties of an object, follow these steps:  Start Microsoft Visual Studio .NET. On the File menu, point to New, and then click Project. In the Visual Basic Projects types list, click Console Application.

By default, the Module1.vb file is created.  In the code window, replace the code with the following: Imports System.Net Imports System.IO

Module Module1

Sub Main ' TODO: Replace with the URL of an object on the computer that is running Exchange 2000. Dim sUri As String = &quot;http://ExchServer/Exchange/UserAlias/Inbox/Test.EML&quot;

Dim myUri As System.Uri = New System.Uri(sUri) Dim HttpWRequest As HttpWebRequest = WebRequest.Create(myUri)

Dim sQuery As String sQuery = &quot;&quot; & _ &quot;&quot; & _ &quot;&quot; & _ &quot;<m:subject/>&quot; & _ &quot;<a:isfolder/>&quot; & _ &quot;<a:displayname/>&quot; & _ &quot;<a:href/>&quot; & _ &quot;</a:prop>&quot; & _ &quot;</a:propfind>&quot;

' TODO: Replace with the appropriate user credential. Dim myCred As NetworkCredential = New NetworkCredential(&quot;Domain\UserName&quot;, &quot;Password&quot;) Dim MyCredentialCache As CredentialCache = New CredentialCache MyCredentialCache.Add(myUri, &quot;Basic&quot;, myCred) HttpWRequest.Credentials = MyCredentialCache

' Set the headers. HttpWRequest.KeepAlive = True 'this is the default HttpWRequest.Headers.Set(&quot;Pragma&quot;, &quot;no-cache&quot;) HttpWRequest.Headers.Set(&quot;Translate&quot;, &quot;f&quot;) HttpWRequest.ContentType = &quot;text/xml&quot; HttpWRequest.ContentLength = sQuery.Length

'Set the request timeout to 5 minutes. HttpWRequest.Timeout = 300000 ' set the request method HttpWRequest.Method = &quot;PROPFIND&quot;

' 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(&quot;Status: {0} {1}&quot;, sStatus, HttpWResponse.StatusDescription.ToString)

Console.WriteLine(&quot;Request Headers:&quot;) Console.WriteLine(HttpWRequest.Headers.ToString) Console.WriteLine(&quot;Response Headers:&quot;) 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(&quot;Response: {0}&quot;, sText)

' Close the stream. strm.Close

' Clean up       HttpWRequest = Nothing HttpWResponse = Nothing MyCredentialCache = Nothing myCred = Nothing strm = Nothing sr = Nothing End Sub End Module </li> Search for the TODO text string in the code, and then modify the code for your environment.</li> Press the F5 key to build and to run the program.</li> Make sure that the object properties have been retrieved from the response stream.</li></ol>

Additional query words: weddav

Keywords: kbhowtomaster KB314197

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.