100165786.htm

来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 248 行

HTM
248
字号


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
	
        31.4.1  URI
</title></head>
<body>
    <div class="area">

        

        <div class="col1">
            <div class="lineBlue">
            </div>
            <!-- title -->
            <div class="arcTitle">
                <h1>
                    <a href="../16">
                        C#高级编程(第3版)【全文连载】
                    </a>
                </h1>
                <div style="text-align: center; font-size: 15px">
                    <a href="100165786.htm">
                        31.4.1  URI
                    </a>
                </div>
                <div style="text-align: center; font-size: 15px">
                    <a class="url" href="../../default.htm">http://book.csdn.net/</a>
                    2006-10-13 14:41:00
                </div>
                <div style="margin: 0px auto; width: 700px; border: solid 1px #0b5f98;">
                    <div style="float: left; width: 16px; background-color: #0b5f98; color: White; padding: 1px;">
                        图书导读
                    </div>
                    <div style="float: right; width: 670px; text-align: left; line-height: 16pt; padding-left: 2px">
                        <!--导读-->
                        <h1 id="divCurrentNode" style="color: #b83507; width: 100%; text-align: left; font-size: 12px; padding-left: 2px">当前章节:<a href='100165786.htm'><font color='red'>31.4.1  URI</font></a></h1>
                        <div id="divRelateNode" style="padding-left: 2px">
                        <div style='float:left;width:49%'>·<a href='100165783.htm'>31.2  WebRequest类和WebResponse类</a></div><div style='float:right;width:49%'>·<a href='100165784.htm'>31.3  把输出结果显示为HTML页面</a></div><div style='float:left;width:49%'>·<a href='100165785.htm'>31.4  实用工具类</a></div><div style='float:right;width:49%'>·<a href='100165787.htm'>31.4.2  IP地址和DNS名称</a></div><div style='float:left;width:49%'>·<a href='100165789.htm'>31.5  较低层的协议</a></div><div style='float:right;width:49%'>·<a href='100165790.htm'>31.6  小结</a></div></div>
                    </div>
                </div>
                </div>
            <!-- main -->
            <div id="main">
                <div id="text"> <link href="css.css" rel="stylesheet" type="text/css" /><h3 style='margin-top:8.15pt;margin-right:0cm;FTEL:8.15pt;margin-left:
0cm'><a FTEL="_Toc535009264"></a><a FTEL="_Toc507815536"><span lang=EN-US>31.4.1&nbsp;
URI</span></a></h3>

<p class=MsoNormal><span lang=EN-US>Uri</span><span style='font-family:宋体'>和</span><span
lang=EN-US>UriBuilder</span><span style='font-family:宋体'>是</span><span
lang=EN-US>System(</span><span style='font-family:宋体'>注意:不是</span><span
lang=EN-US>System.Net)</span><span style='font-family:宋体'>命名空间中的两个类,它们都用于表示</span><span
lang=EN-US>URI</span><span style='font-family:宋体'>。</span><span lang=EN-US>UriBuilder</span><span
style='font-family:宋体'>允许把给定的字符串当作</span><span lang=EN-US>URI</span><span
style='font-family:宋体'>的组成部分,从而建立一个</span><span lang=EN-US>URI</span><span
style='font-family:宋体'>,而</span><span lang=EN-US>Uri</span><span
style='font-family:宋体'>允许分析、组合和比较</span><span lang=EN-US>URI</span><span
style='font-family:宋体'>。</span></p>

<p class=MsoNormal><span style='font-family:宋体'>对于</span><span lang=EN-US>Uri</span><span
style='font-family:宋体'>类,构造函数需要一个完整的</span><span lang=EN-US>URI</span><span
style='font-family:宋体'>字符串:</span></p>

<p class=2 style='margin-top:8.15pt;margin-right:0cm;FTEL:0cm;
margin-left:21.45pt;FTEL:.0001pt;FTEL:18.45pt'><span
lang=EN-US>Uri MSPage = new </span></p>

<p class=2 style='margin-top:0cm;margin-right:0cm;FTEL:8.15pt;
margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Uri(&quot;http://www.Microsoft.com/SomeFolder/SomeFile.htm?Order=true&quot;);</span></p>

<p class=MsoNormal><span lang=EN-US>Uri</span><span style='font-family:宋体'>类给出了许多只读属性。当</span><span
lang=EN-US>Uri</span><span style='font-family:宋体'>对象构造出来之后,它就不能修改了。</span></p>

<p class=2 style='margin-top:8.15pt;margin-right:0cm;FTEL:0cm;
margin-left:21.45pt;FTEL:.0001pt;FTEL:18.45pt'><span
lang=EN-US>string Query =
MSPage.Query;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; // Order=true;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>string
AbsolutePath = MSPage.AbsolutePath;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; //
SomeFolder/SomeFile.htm</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>string
Scheme =
MSPage.Scheme;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp; // http</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>int
Port =
MSPage.Port;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; // 80 (the default for http)</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>string
Host =
MSPage.Host;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 // www.Microsoft.com</span></p>

<p class=2 style='margin-top:0cm;margin-right:0cm;FTEL:8.15pt;
margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>bool IsDefaultPort =
MSPage.IsDefaultPort;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; // true since 80 is
default</span></p>

<p class=MsoNormal><span style='font-family:宋体'>另一方面,</span><span lang=EN-US>UriBuilder</span><span
style='font-family:宋体'>类的属性较少:只允许建立完整的</span><span lang=EN-US>URI</span><span
style='font-family:宋体'>。这些属性是可读写的。</span></p>

<p class=MsoNormal><span style='font-family:宋体'>可以给构造函数提供建立</span><span
lang=EN-US>URI</span><span style='font-family:宋体'>所需的各个组成部分:</span></p>

<p class=2 style='margin-top:8.15pt;margin-right:0cm;FTEL:0cm;
margin-left:21.45pt;FTEL:.0001pt;FTEL:18.45pt'><span
lang=EN-US>Uri MSPage = new </span></p>

<p class=2 style='margin-top:0cm;margin-right:0cm;FTEL:8.15pt;
margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp; UriBuilder(&quot;http&quot;,
&quot;www.Microsoft.com&quot;, 80, &quot;SomeFolder/SomeFile.htm&quot;)</span></p>

<p class=MsoNormal><span style='font-family:宋体'>或者把值赋给属性,建立</span><span
lang=EN-US>URI</span><span style='font-family:宋体'>的组成部分。</span></p>

<p class=2 style='margin-top:8.15pt;margin-right:0cm;FTEL:0cm;
margin-left:21.45pt;FTEL:.0001pt;FTEL:18.45pt'><span
lang=EN-US>UriBuilder MSPage = new UriBuilder();</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>MSPage.Scheme
=&quot;http&quot;;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>MSPage.Host
= &quot;www.Microsoft.com&quot;;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>MSPage.Port
= 80;</span></p>

<p class=2 style='margin-top:0cm;margin-right:0cm;FTEL:8.15pt;
margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>MSPage.Path =
&quot;SomeFolder/SomeFile.htm&quot;;</span></p>

<p class=MsoNormal><span style='font-family:宋体'>在完成</span><span lang=EN-US>UriBuilder</span><span
style='font-family:宋体'>的初始化后,就可以使用</span><span lang=EN-US>Uri</span><span
style='font-family:宋体'>属性获得相应的</span><span lang=EN-US>Uri</span><span
style='font-family:宋体'>对象。</span></p>

<p class=2 style='margin-top:8.15pt;margin-right:0cm;FTEL:8.15pt;
margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>Uri CompletedUri =
MSPage.Uri;</span></p>

<p class=a3 style='margin-top:8.15pt;FTEL:21.45pt'><span lang=EN-US>DisplayPage</span><span
style='font-family:黑体'>示例</span></p>

<p class=MsoNormal><span style='font-family:宋体'>下面的示例</span><span lang=EN-US>DisplayPage</span><span
style='font-family:宋体'>将阐明</span><span lang=EN-US>UriBuilder</span><span
style='font-family:宋体'>的用法和如何创建</span><span lang=EN-US>Internet Explorer</span><span
style='font-family:宋体'>进程。这个示例允许用户键入</span><span lang=EN-US>URL</span><span
style='font-family:宋体'>的组成部分。注意,这里使用的是</span><span lang=EN-US>URL</span><span
style='font-family:宋体'>,而不是</span><span lang=EN-US>URI</span><span
style='font-family:宋体'>,因为这是一个</span><span lang=EN-US>HTTP</span><span
style='font-family:宋体'>请求。然后,用户可以单击</span><span lang=EN-US>View Page</span><span
style='font-family:宋体'>按钮,此时,应用程序将把完整的</span><span lang=EN-US>URL</span><span
style='font-family:宋体'>显示在文本框中,并用</span><span lang=EN-US>Web</span><span
style='font-family:宋体'>浏览器</span><span lang=EN-US>ActiveX</span><span
style='font-family:宋体'>控件显示页面。该示例是标准的</span><span lang=EN-US>C# Windows</span><span
style='font-family:宋体'>应用程序,它的结果如图</span><span lang=EN-US>31-6</span><span
style='font-family:宋体'>所示。</span></p>

<p align=center><span lang=EN-US><img width=332 height=203
src="31/image007.jpg"></span></p>

<p align=center style='FTEL:8.15pt'><span style='font-family:宋体'>图</span><span
lang=EN-US>&nbsp; 31-6</span></p>

<p class=MsoNormal><span style='font-family:宋体'>文本框分别命名为</span><span
lang=EN-US>textBoxServer</span><span style='font-family:宋体'>、</span><span
lang=EN-US>textBoxPath</span><span style='font-family:宋体'>、</span><span
lang=EN-US>textBoxPort</span><span style='font-family:宋体'>和</span><span
lang=EN-US>textBoxURI</span><span style='font-family:宋体'>。为这个示例添加的代码全都在</span><span
lang=EN-US>ViewPage</span><span style='font-family:宋体'>按钮的事件处理程序中。</span></p>

<p class=2 style='margin-top:8.15pt;margin-right:0cm;FTEL:0cm;
margin-left:21.45pt;FTEL:.0001pt;FTEL:18.45pt'><span
lang=EN-US>private void ViewPage_Click (object sender, System.EventArgs e)</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>{</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;
UriBuilder Address = new UriBuilder();</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;
Address.Host = txtBoxServer.Text;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;
Address.Port = int.Parse(txtBoxPort.Text);</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;
Address.Scheme = Uri.UriSchemeHttp;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;
Address.Path = txtBoxPath.Text;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;
Uri AddressUri = Address.Uri;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;
Process myProcess = new Process();</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;
myProcess.StartInfo.FileName = &quot;iexplore.exe&quot;;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;
txtBoxURI.Text = AddressUri.ToString();</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;
myProcess.StartInfo.Arguments = AddressUri.ToString();</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;
myProcess.Start();</span></p>

<p class=2 style='margin-top:0cm;margin-right:0cm;FTEL:8.15pt;
margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>}</span></p>

</div>
                <!-- page -->
                <div class="page" style="text-align: center">
                    <a href="100165785.htm">上一页</a>&nbsp;&nbsp;&nbsp;<a href="index.html">首页</a>&nbsp;&nbsp;&nbsp;<a href="100165787.htm">下一页</a>
                </div>
                <div style="margin: 0px auto; width: 700px; border: solid 1px #0b5f98;">
                    <div style="float: left; width: 16px; background-color: #0b5f98; color: White; padding: 1px;">
                        图书导读
                    </div>
                    <div style="float: right; width: 670px; text-align: left; line-height: 16pt; padding-left: 2px">
                        <!--导读-->
                        <h1 id="divCurrentNode2" style="color: #b83507; width: 100%; text-align: left; font-size: 12px; padding-left: 2px">当前章节:<a href='100165786.htm'><font color='red'>31.4.1  URI</font></a></h1>
                        <div id="divRealteNod2" style="padding-left: 2px">
                        <div style='float:left;width:49%'>·<a href='100165783.htm'>31.2  WebRequest类和WebResponse类</a></div><div style='float:right;width:49%'>·<a href='100165784.htm'>31.3  把输出结果显示为HTML页面</a></div><div style='float:left;width:49%'>·<a href='100165785.htm'>31.4  实用工具类</a></div><div style='float:right;width:49%'>·<a href='100165787.htm'>31.4.2  IP地址和DNS名称</a></div><div style='float:left;width:49%'>·<a href='100165789.htm'>31.5  较低层的协议</a></div><div style='float:right;width:49%'>·<a href='100165790.htm'>31.6  小结</a></div></div>
                    </div>
                </div>
                </div>
        </div>
</body>
</html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?