2 // System.Net.WebClient
\r
5 // Lawrence Pit (loz@cable.a2000.nl)
\r
9 using System.Collections;
\r
10 using System.Collections.Specialized;
\r
11 using System.ComponentModel;
\r
13 using System.Runtime.InteropServices;
\r
14 using System.Runtime.Serialization;
\r
16 namespace System.Net
\r
19 public sealed class WebClient : Component
\r
22 ICredentials credentials;
\r
33 public string BaseAddress {
\r
34 get { throw new NotImplementedException (); }
\r
35 set { throw new NotImplementedException (); }
\r
38 public ICredentials Credentials {
\r
39 get { return credentials; }
\r
40 set { credentials = value; }
\r
44 public WebHeaderCollection Headers {
\r
45 get { throw new NotImplementedException (); }
\r
46 set { throw new NotImplementedException (); }
\r
50 public NameValueCollection QueryString {
\r
51 get { throw new NotImplementedException (); }
\r
52 set { throw new NotImplementedException (); }
\r
56 public WebHeaderCollection ResponseHeaders {
\r
57 get { throw new NotImplementedException (); }
\r
62 public byte [] DownloadData (string address)
\r
64 const int readSize = 8192;
\r
65 Stream networkStream = OpenRead (address);
\r
66 ArrayList chunks = new ArrayList ();
\r
67 byte[] buf = new byte [readSize];
\r
73 size = networkStream.Read (buf, 0, readSize);
\r
74 byte [] copy = new byte [size];
\r
75 Array.Copy (buf, 0, copy,0, size);
\r
78 } while (size != 0);
\r
80 networkStream.Close ();
\r
83 byte [] result = new byte [total_size];
\r
85 foreach (byte [] block in chunks){
\r
86 int len = block.Length;
\r
87 Array.Copy (block, 0, result, target, len);
\r
93 public void DownloadFile (string address, string fileName)
\r
95 byte[] buf = DownloadData (address);
\r
96 using (FileStream f = new FileStream (fileName, FileMode.CreateNew)){
\r
97 f.Write (buf, 0, buf.Length);
\r
101 public Stream OpenRead (string address)
\r
103 Uri uri = new Uri (address);
\r
104 WebRequest request = null;
\r
106 if (uri.Scheme == Uri.UriSchemeHttp || uri.Scheme == Uri.UriSchemeHttps)
\r
107 request = new HttpWebRequest (uri);
\r
108 else if(uri.Scheme == Uri.UriSchemeFile)
\r
109 request = new FileWebRequest (uri);
\r
111 throw new NotImplementedException ();
\r
113 return request.GetResponse ().GetResponseStream ();
\r
116 public Stream OpenWrite (string address)
\r
118 return OpenWrite (address, "POST");
\r
122 public Stream OpenWrite (string address, string method)
\r
124 throw new NotImplementedException ();
\r
127 public byte [] UploadData (string address, byte [] data)
\r
129 return UploadData (address, "POST", data);
\r
133 public byte [] UploadData (string address, string method, byte [] data)
\r
135 throw new NotImplementedException ();
\r
138 public byte [] UploadFile (string address, string fileName)
\r
140 return UploadFile (address, "POST", fileName);
\r
144 public byte[] UploadFile (string address, string method, string fileName)
\r
146 throw new NotImplementedException ();
\r
149 public byte[] UploadValues (string address, NameValueCollection data)
\r
151 return UploadValues (address, "POST", data);
\r
155 public byte[] UploadValues (string address, string method, NameValueCollection data)
\r
157 throw new NotImplementedException ();
\r