예제 #1
0
 protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
 {
     return Task<HttpResponseMessage>.Factory.StartNew(() =>
         {
             bool isHeadMethod = request.Method == HttpMethod.Head;
             long fileLength = m_Data.Length;
             ContentInfo contentInfo = GetContentInfoFromRequest(request, fileLength);
             PartialReadFileStream stream = new PartialReadFileStream(new DownloadStream(isHeadMethod ? new byte[0] : m_Data, m_Logger), contentInfo.From, contentInfo.To);
             HttpResponseMessage response = new HttpResponseMessage();
             response.Content = new StreamContent(stream);
             SetResponseHeaders(response, contentInfo, fileLength, Path.GetFileName(request.RequestUri.AbsoluteUri));
             return response;
         });
 }
예제 #2
0
 protected override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
 {
     return(Task <HttpResponseMessage> .Factory.StartNew(() =>
     {
         bool isHeadMethod = request.Method == HttpMethod.Head;
         long fileLength = m_Data.Length;
         ContentInfo contentInfo = GetContentInfoFromRequest(request, fileLength);
         PartialReadFileStream stream = new PartialReadFileStream(new DownloadStream(isHeadMethod ? new byte[0] : m_Data, m_Logger), contentInfo.From, contentInfo.To);
         HttpResponseMessage response = new HttpResponseMessage();
         response.Content = new StreamContent(stream);
         SetResponseHeaders(response, contentInfo, fileLength, Path.GetFileName(request.RequestUri.AbsoluteUri));
         return response;
     }));
 }