在现代网络应用中,经常需要从远程服务器读取文件内容。本文将介绍如何使用HttpWebRequest类从远程Web服务器读取文件内容。HttpWebRequest是.NET Framework中用于发送HTTP请求的类,它提供了一种简单的方式来与Web服务器交互。
在Visual Basic中,可以通过以下步骤实现从远程服务器读取文件内容的功能。
If Not IsPostBack Then
Try
Dim fr As System.Net.HttpWebRequest
Dim targetURI As New Uri("http://weblogs.asp.net/farazshahkhan")
fr = DirectCast(System.Net.HttpWebRequest.Create(targetURI), System.Net.HttpWebRequest)
' 在上述代码中,http://weblogs.asp.net/farazshahkhan 被用作示例
' 它可以是不同的域名,带有不同的文件名和扩展名
If (fr.GetResponse().ContentLength > 0) Then
Dim str As New System.IO.StreamReader(fr.GetResponse().GetResponseStream())
Response.Write(str.ReadToEnd())
str.Close()
End If
Catch ex As System.Net.WebException
Response.Write("文件不存在。")
End Try
End If
在这段代码中,首先检查当前请求是否是回发请求。如果不是,创建一个HttpWebRequest对象,并指定要访问的URI。然后,检查响应的内容长度是否大于0,如果是,使用StreamReader读取响应流的内容,并将其输出到响应中。如果在读取过程中发生异常,将输出“文件不存在。”
在C#中,实现从远程服务器读取文件内容的步骤与Visual Basic类似。以下是C#的示例代码。
if (!(IsPostBack))
{
try
{
System.Net.HttpWebRequest fr;
Uri targetUri = new Uri("http://weblogs.asp.net/farazshahkhan");
fr = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(targetUri);
// 在上述代码中,http://weblogs.asp.net/farazshahkhan 被用作示例
// 它可以是不同的域名,带有不同的文件名和扩展名
if ((fr.GetResponse().ContentLength > 0))
{
System.IO.StreamReader str = new System.IO.StreamReader(fr.GetResponse().GetResponseStream());
Response.Write(str.ReadToEnd());
if (str != null) str.Close();
}
}
catch (System.Net.WebException ex)
{
Response.Write("文件不存在。");
}
}
在这段C#代码中,同样首先检查当前请求是否是回发请求。如果不是,创建一个HttpWebRequest对象,并指定要访问的URI。然后,检查响应的内容长度是否大于0,如果是,使用StreamReader读取响应流的内容,并将其输出到响应中。如果在读取过程中发生异常,将输出“文件不存在。”