Exemple #1
0
        private HttpResponse GetResponseAndSaveFile(HttpWebRequest request, string fileSavePath)
        {
            var response = new HttpResponse();
            response.ResponseStatus = ResponseStatus.None;

            try
            {
                var webResponse = GetRawResponse(request);
                using (webResponse)
                {
                    response.ContentType = webResponse.ContentType;
                    response.ContentLength = webResponse.ContentLength;
                    response.ContentEncoding = webResponse.ContentEncoding;
                    response.StatusCode = webResponse.StatusCode;
                    response.StatusDescription = webResponse.StatusDescription;
                    response.ResponseUri = webResponse.ResponseUri;
                    response.Server = webResponse.Server;
                    response.ResponseStatus = ResponseStatus.Completed;

                    using (Stream output = File.OpenWrite(fileSavePath))
                    using (Stream input = webResponse.GetResponseStream())
                    {
                        byte[] buffer = new byte[8 * 1024];
                        int len;
                        while ((len = input.Read(buffer, 0, buffer.Length)) > 0)
                        {
                            output.Write(buffer, 0, len);
                        }    
                        output.Close();
                    }

                    foreach (var headerName in webResponse.Headers.AllKeys)
                    {
                        var headerValue = webResponse.Headers[headerName];
                        response.Headers.Add(new HttpHeader { Name = headerName, Value = headerValue });
                    }

                    webResponse.Close();
                }
            }
            catch (Exception ex)
            {
                response.ErrorMessage = ex.Message;
                response.ResponseStatus = ResponseStatus.Error;
            }

            return response;
        }
Exemple #2
0
        private HttpResponse GetResponse(HttpWebRequest request)
        {
            var response = new HttpResponse();
            response.ResponseStatus = ResponseStatus.None;

            try
            {
                var webResponse = GetRawResponse(request);
                using (webResponse)
                {
                    response.ContentType = webResponse.ContentType;
                    response.ContentLength = webResponse.ContentLength;
                    response.ContentEncoding = webResponse.ContentEncoding;
                    response.ResponseStream = webResponse.GetResponseStream();
                    response.StatusCode = webResponse.StatusCode;
                    response.StatusDescription = webResponse.StatusDescription;
                    response.ResponseUri = webResponse.ResponseUri;
                    response.Server = webResponse.Server;
                    response.ResponseStatus = ResponseStatus.Completed;

                    using (StreamReader reader = new StreamReader(response.ResponseStream))
                    {
                        response.Content = reader.ReadToEnd();
                    }

                    foreach (var headerName in webResponse.Headers.AllKeys)
                    {
                        var headerValue = webResponse.Headers[headerName];
                        response.Headers.Add(new HttpHeader { Name = headerName, Value = headerValue });
                    }

                    webResponse.Close();
                }
            }
            catch (Exception ex)
            {
                response.ErrorMessage = ex.Message;
                response.ResponseStatus = ResponseStatus.Error;
            }

            return response;
        }