需要用到HttpWebResponse的开发,并且读取Stream的数据,贡献下我的源代码。例子虽然很简单,但是很实用。
3GEYE|u|IW*^ V$J|plJ)hi3 using System;
3GEYEGXn2o1h3WD using System.Collections.Generic;
|e)_!B.Y*g3 using System.Text;
vvwnb;DB!W6E*l33GEYEq dcV-K!G
M using System.Net;
k-U"~ nDrK
L
A[5^v3 using System.IO;
A#Ji2B@*v3$ws$I
s4E%D6?3 namespace APIDemo
3GEYEd!k"|U*Dg)N4I {
3GEYE&^q�?2s�~ class Program
j T9S;IP'q0c8bN3 {
3GEYE0r G!k0I"jO;@ static void Main(string[] args)
3GEYEEPC%w4Bi,b6k$\*k {
3GEYED~Rl\qGx
I Console.WriteLine("Hello C#");
3GEYE7~mhc`o}b? 5I4b,[@&w
j3 HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://wap.uc123.com");
3GEYE'P8y;m7az;by\av9y HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
3GEYE%|g;@^b-C.a 3GEYEF�DsP"G8i,u1n }6k Stream stream = httpWebResponse.GetResponseStream();
3GEYEjv8~vH
hD/\b#u byte[] bytes = new byte[1024];
3GEYE9Q.nU
A,y Bu8]o)Ay
g]uh,J3 int numBytesToRead = (int)bytes.Length;
3GEYEn*L+r0p"Aoq int numBytesRead = 0;
3GEYE0w{$Lt?@:{-y0r$V //Console.WriteLine(stream.Length);
3GEYE:Y6K.]6[Ue(X#c:C'}ZJL3 byte[] bs = Read2Buffer(stream,512);
6c,H"I.Z'S?+d&X
B33GEYEO.Of[?$IeK5F3L ioQ�h!?s3 X,v/f I%l e[2g$sL:yI33GEYES-p�T;n
U/D.la:F String text = System.Text.Encoding.UTF8.GetString(bs);
3GEYE
Q1t)`sr Console.WriteLine(text);
I5u0uoF3 3GEYE]il9U:h4Dc#b!Y XHV*WS+C'YW g3 Console.Read();
/d#z!B�da3 3GEYExN%]#}E`e @-p8P]
aZ beF3xt3 //Stream
file = httpWebResponse.GetResponseStream();
3GEYEp
~(@BJLt0j[Z
E!s5W$}2S*K;c]$N3\2NO!Pw){x
g#h-h'N3 }
3GEYE[_uOt3GEYE'i6I1he"x/S:n public static byte[] Read2Buffer(Stream stream, int BufferLen)
3GEYE!?/}B;~["q
|j7`J {
3GEYE.O9?2N:jEQk2|3GEYE9oJQXp)P?l-q // 如果指定的无效长度的缓冲区,则指定一个默认的长度作为缓存大小
3GEYE,Yp4N+X2d`)FxdO3GEYE+eLb|JWx%e#j if (BufferLen < 1)
b7mx@r4A|r T3 {
3P5A5_1@xvr33GEYE*Bv
s�b? BufferLen = 0x8000;
$o1t~D/L0m35Dr#c:Y{�GIeO3 }
5DHF/g;y3pm33GEYEza}�a!nn:s}9?Nh // 初始化一个缓存区
hx XS)qMnJ5a33GEYE3Y7{_yG byte[] buffer = new byte[BufferLen];
jVxo{O3nU%}moN"O2F3 int read = 0;
9\\_mW$?/p/I33GEYE1Q,wgV*k}!AE9c int block;
3GEYE!m&oU3B%JjYCoA6hl$x[A3 // 每次从流中读取缓存大小的数据,知道读取完所有的流为止
"\0m3HThJ33GEYE'ehD"k;nmSYL.a while ((block = stream.Read(buffer, read, buffer.Length - read)) > 0)
3GEYE+wW.QXO {
3GEYE~8Y ?p
L
s5@P Z,C%p1DF,`3 // 重新设定读取位置
3GEYE8ZbT ~4rp"~*LO)X8X`X\moq3 read += block;
*S(bc:H�Dg3|fWB:p4Xi
w.H.b33GEYEtt,p)K`R5z6Zj_h8zb�Yq3 // 检查是否到达了缓存的边界,检查是否还有可以读取的信息
^2m]:F#m0W'gi']:i'yY3\,R*xiBk$P3 if (read == buffer.Length)
3GEYE?#gv{+c8q-N {
2H�yN;G'u\33GEYEk!Am/Dl:a0r:P4c
I // 尝试读取一个字节
ecE:whv�aK/u2s33GEYE,v5z1j!jot int nextByte = stream.ReadByte();
?&\Lw/B7W!W7m-J3,z
f]'fO#_3\#Qivv u9P4kP3!m`!W0T|7sU2jI3 // 读取失败则说明读取完成可以返回结果
H'^5_B
UuS33GEYEP$d\{md�@(A if (nextByte == -1)
@}n&eQ"evO3 {
GU7E%Q&BB3]6n4?;|#{-l3 return buffer;
3GEYE
Gi
W!~X1zv6xD-k A~ DCO\8qA:T3 }
3GEYE?&CZ^%~vPI
@I3GEYE
y `ph%bN/dBS6r3GEYEhJA~+nH8oa}0Az+K \`�e3 // 调整数组大小准备继续读取
O
x(`#~W8r,i3lUqa�k_.d3 byte[] newBuf = new byte[buffer.Length * 2];
3GEYE8sG9MGI1qA'k3GEYE$j0um[2P8{VUw Array.Copy(buffer, newBuf, buffer.Length);
Mc U4Qn8lj!GF3&@
Od;xmP7s3 newBuf[read] = (byte)nextByte;
0x+^`.tP
D3x1m%O-Q1I(o1u3 buffer = newBuf;// buffer是一个引用(指针),这里意在重新设定buffer指针指向一个更大的内存
Lc4YU8z&l
z3i/j,[(Q}.lw3 read++;
7I0UJ'P9ys0t33GEYEJ:N3W6WZ5xi&z
分享到:
相关推荐
C#.Net网络程序开发是基于Microsoft的.NET框架进行网络应用构建的技术。C#语言作为.NET框架的主要编程语言,为开发者提供了强大的工具和丰富的库来创建高效、可维护的网络应用程序。在C#.Net中,我们可以利用多种...
《ASP.NET 3.5网络程序设计案例集锦》是由周峰编著的一本深入探讨ASP.NET 3.5技术的书籍,其源代码提供了丰富的实践案例,旨在帮助读者掌握如何利用ASP.NET 3.5进行高效且实用的Web应用程序开发。这本书涵盖了许多...
《Visual C#.Net 网络程序开发》一书深入探讨了使用Microsoft的C#编程语言和.NET框架进行网络应用程序的构建。这本书的核心内容涵盖了网络通信的基础知识、C#中的网络编程接口、Socket编程以及如何利用这些技术创建...
通过深入学习《Visual Basic .NET网络程序设计——TCPIP与Internet Programming》,开发者不仅能掌握TCP/IP的基本原理,还能熟练运用VB.NET进行网络程序设计,开发出高效、稳定的网络应用。对于初学者来说,这是一条...
Microsoft.Net Framework为应用程序访问Internet提供了分层的、可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序
《程序天下ASP.NET3.5网络数据库开发实例自学手册》是一部深入浅出的教程,旨在帮助初学者和有一定基础的开发者掌握ASP.NET 3.5框架下如何进行网络数据库开发。该教程通过丰富的实例,详细讲解了从设计、实现到调试...
**JScript.NET程序开发** JScript.NET是一种基于ECMAScript标准的编程语言,由微软公司为.NET Framework开发,旨在提供一种轻量级、跨平台的脚本语言用于构建.NET应用程序。JScript.NET不仅继承了JavaScript的基本...
在VB.NET中,你可以编写代码来启用、禁用或检查网络连接状态,这对于开发网络相关的应用程序非常有用。下面将详细介绍如何使用VB.NET进行网络连接的控制。 1. 检查网络连接状态: 在VB.NET中,可以使用`System.Net...
**Ext.NET框架网络程序开发 (英文版)** Ext.NET是一个基于.NET Framework的开源JavaScript库,专为构建富互联网应用程序(RIA)而设计。这个框架是Ext JS与.NET世界的结合,它提供了一套全面的服务器端组件,使得...
vb.net程序开发,属于计算机软件领域,是计算机中实现网络功能的编程语言
在JScript.NET程序开发中,有以下几个核心知识点: 1. **类型系统**:与传统的JavaScript不同,JScript.NET支持静态类型声明,这意味着变量在声明时可以指定类型,提高了代码的可读性和编译时的错误检查能力。 2. ...
ASP.NET 3.5是微软公司推出的一种基于.NET Framework 3.5的Web应用程序开发框架。这个框架为开发者提供了一种高效、强大的工具,用于构建动态、数据驱动的Web应用程序。"至理:精通ASP.NET3.5网络开发源代码"这个...
在本文中,我们将深入探讨ASP.NET网络开发技术,以及如何利用C#进行Web应用的开发。 一、ASP.NET概述 ASP.NET是一个服务器端的开发平台,它可以用来创建动态、交互式的Web服务和网站。ASP.NET不仅支持HTML、CSS和...
《完全手册:ASP.NET 2.0网络开发详解》是一本深入探讨ASP.NET 2.0框架下网络应用开发的专业指南。这本书旨在帮助开发者全面掌握ASP.NET 2.0技术,构建高效、稳定的Web应用程序。 ASP.NET是微软.NET Framework的...
【ASP.NET 网络聊天程序设计】 ...总的来说,这个ASP.NET网络聊天程序设计报告提供了一个学习和实践网络编程和聊天系统架构的良好案例,对于想要深入理解和应用ASP.NET技术的人来说,具有很高的参考价值。
总之,“ASP.NET 2.0网络开发技术”这本书会引领读者逐步深入ASP.NET 2.0的世界,通过学习,开发者将能够熟练掌握构建Web应用程序的各种技术和策略,从而在实际工作中发挥出ASP.NET 2.0的强大潜力。无论你是初学者...
《ASP.NET网络应用开发例学与实践》是一本深度探讨ASP.NET技术的书籍,由郭常川和李云锦两位作者合著。本书的核心目的是通过实例教学的方式,帮助读者掌握ASP.NET在网络应用开发中的实际运用,提升开发技能。在源码...
本项目是使用VB.NET语言编写的软件更新程序,VB.NET是Microsoft .NET框架下的一种面向对象的编程语言,具有丰富的类库和简洁的语法,适合开发桌面应用程序。 1. **VB.NET基础**:VB.NET是Visual Basic的.NET版本,...