Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ UploadBits()

byte[] System.Net.WebClient.UploadBits ( WebRequest request,
Stream readStream,
byte[] buffer,
int chunkSize,
byte[] header,
byte[] footer )
inlineprivate

Definition at line 1137 of file WebClient.cs.

1138 {
1139 try
1140 {
1141 if (request.RequestUri.Scheme == Uri.UriSchemeFile)
1142 {
1143 header = (footer = null);
1144 }
1145 using (Stream stream = request.GetRequestStream())
1146 {
1147 if (header != null)
1148 {
1149 stream.Write(header, 0, header.Length);
1150 }
1151 if (readStream != null)
1152 {
1153 using (readStream)
1154 {
1155 while (true)
1156 {
1157 int num = readStream.Read(buffer, 0, buffer.Length);
1158 if (num > 0)
1159 {
1160 stream.Write(buffer, 0, num);
1161 continue;
1162 }
1163 break;
1164 }
1165 }
1166 }
1167 else
1168 {
1169 int num2;
1170 for (int i = 0; i < buffer.Length; i += num2)
1171 {
1172 num2 = buffer.Length - i;
1173 if (chunkSize != 0 && num2 > chunkSize)
1174 {
1175 num2 = chunkSize;
1176 }
1177 stream.Write(buffer, i, num2);
1178 }
1179 }
1180 if (footer != null)
1181 {
1182 stream.Write(footer, 0, footer.Length);
1183 }
1184 }
1185 return DownloadBits(request, new ChunkedMemoryStream());
1186 }
1187 catch (Exception ex) when (!(ex is OutOfMemoryException))
1188 {
1189 AbortRequest(request);
1190 if (ex is WebException || ex is SecurityException)
1191 {
1192 throw;
1193 }
1194 throw new WebException(System.SR.net_webclient, ex);
1195 }
1196 }
int Read(byte[] buffer, int offset, int count)
byte[] DownloadBits(WebRequest request, Stream writeStream)
static void AbortRequest(WebRequest request)
Definition WebClient.cs:929
static string net_webclient
Definition SR.cs:14
Definition SR.cs:7

References System.Net.WebClient.AbortRequest(), System.buffer, System.Net.WebClient.DownloadBits(), System.Net.WebRequest.GetRequestStream(), System.SR.net_webclient, System.IO.Stream.Read(), System.Net.WebRequest.RequestUri, System.Uri.Scheme, System.stream, and System.Uri.UriSchemeFile.

Referenced by System.Net.WebClient.UploadDataInternal(), System.Net.WebClient.UploadFile(), and System.Net.WebClient.UploadValues().