obexwebresponse.cs

来自「蓝牙传输控件,用于蓝牙文件上传和下载。芯片只要选用crs」· CS 代码 · 共 94 行

CS
94
字号
using System.Net;
using System.IO;

namespace bluetoothX
{
	public class ObexWebResponse : WebResponse
	{
		private MemoryStream responseStream;
		private WebHeaderCollection responseHeaders;
		private ObexStatusCode statusCode;

		internal ObexWebResponse(MemoryStream stream, WebHeaderCollection headers, ObexStatusCode code)
		{
			this.responseStream = stream;
			this.responseHeaders = headers;
			this.statusCode = code;
		}

		public override WebHeaderCollection Headers
		{
			get
			{
				return this.responseHeaders;
			}
		}

		public override long ContentLength
		{
			get
			{
				string len = this.responseHeaders["LENGTH"];
				if(len!=null && len!=string.Empty)
				{
					return long.Parse(len);
				}
				return 0;
			}
			set
			{
			}
		}

		public override string ContentType
		{
			get
			{
				return this.responseHeaders["TYPE"];
			}
			set
			{
			}
		}

		public ObexStatusCode StatusCode
		{
			get
			{
				return statusCode;
			}
		}

		public override Stream GetResponseStream()
		{
			return responseStream;
		}

		public void WriteFile(string fileName)
		{
			FileStream fs = File.Create(fileName);

			//read in 1k chunks
			byte[] buffer = new byte[1024];
			int readBytes;
			do
			{
				readBytes = responseStream.Read(buffer, 0, buffer.Length);
				fs.Write(buffer, 0, readBytes);
			}while (readBytes > 0);

			responseStream.Close();
			fs.Close();
		}

		public override void Close()
		{
			if(responseStream!=null)
			{
				responseStream.Close();
			}
		}

	}
}

⌨️ 快捷键说明

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