/// <summary>
        /// The constructor for UnityWebResponseData.
        /// </summary>
        /// <param name="wwwRequest">
        /// An instance of WWW after the web request has
        /// completed and response fields are set
        /// </param>
        public UnityWebResponseData(WWW wwwRequest)
        {
            _logger = Logger.GetLogger(this.GetType());
            CopyHeaderValues(wwwRequest.responseHeaders);

            try
            {
                _responseBody = wwwRequest.bytes;
            }
            catch (Exception)
            {
                _responseBody = null;
            }

            if ((_responseBody != null && _responseBody.Length > 0) || (_responseBody.Length == 0 && wwwRequest.error == null))
            {
                _responseStream = new MemoryStream(_responseBody);
            }

            this.ContentLength = wwwRequest.bytesDownloaded;

            string contentType = null;

            this._headers.TryGetValue(
                HeaderKeys.ContentTypeHeader, out contentType);
            this.ContentType = contentType;
            try
            {
                if (string.IsNullOrEmpty(wwwRequest.error))
                {
                    string statusHeader = string.Empty;
                    if (this._headers.TryGetValue(HeaderKeys.StatusHeader, out statusHeader))
                    {
                        this.StatusCode = (HttpStatusCode)Enum.Parse(
                            typeof(HttpStatusCode),
                            statusHeader.Substring(9, 3).Trim());
                    }
                    else
                    {
                        this.StatusCode = 0;
                    }
                }
                else
                {
                    int statusCode;
                    if (Int32.TryParse(wwwRequest.error.Substring(0, 3), out statusCode))
                    {
                        this.StatusCode = (HttpStatusCode)Enum.Parse(typeof(HttpStatusCode),
                                                                     wwwRequest.error.Substring(3).Replace(" ", "").Replace(":", "").Trim(), true);//ignored case
                    }
                    else
                    {
                        this.StatusCode = 0;
                    }
                }
            }
            catch
            {
                this.StatusCode = 0;
            }
            this.IsSuccessStatusCode = wwwRequest.error == null ? true : false;
        }
示例#2
0
        /// <summary>
        /// The constructor for UnityWebResponseData.
        /// </summary>
        /// <param name="wwwRequest">
        /// An instance of WWW after the web request has 
        /// completed and response fields are set
        /// </param>
        public UnityWebResponseData(WWW wwwRequest)
        {
            _logger = Logger.GetLogger(this.GetType());
            CopyHeaderValues(wwwRequest.responseHeaders);

            try
            {
                _responseBody = wwwRequest.bytes;
            }
            catch (Exception)
            {
                _responseBody = null;
            }

            if ((_responseBody != null && _responseBody.Length > 0) || (_responseBody.Length == 0 && wwwRequest.error == null))
            {
                _responseStream = new MemoryStream(_responseBody);
            }

            this.ContentLength = wwwRequest.bytesDownloaded;

            string contentType = null;
            this._headers.TryGetValue(
                HeaderKeys.ContentTypeHeader, out contentType);
            this.ContentType = contentType;
            try
            {
                if (string.IsNullOrEmpty(wwwRequest.error))
                {
                    string statusHeader = string.Empty;
                    if (this._headers.TryGetValue(HeaderKeys.StatusHeader, out statusHeader))
                    {
                        this.StatusCode = (HttpStatusCode)Enum.Parse(
                        typeof(HttpStatusCode),
                        statusHeader.Substring(9, 3).Trim());
                    }
                    else
                    {
                        this.StatusCode = 0;
                    }
                }
                else
                {
                    int statusCode;
                    if (Int32.TryParse(wwwRequest.error.Substring(0, 3), out statusCode))
                        this.StatusCode = (HttpStatusCode)Enum.Parse(typeof(HttpStatusCode),
                                            wwwRequest.error.Substring(3).Replace(" ", "").Replace(":", "").Trim(), true);//ignored case
                    else
                        this.StatusCode = 0;
                }
            }
            catch
            {
                this.StatusCode = 0;
            }
            this.IsSuccessStatusCode = wwwRequest.error == null ? true : false;
        }
        /// <summary>
        /// The constructor for UnityWebResponseData.
        /// </summary>
        /// <param name="wwwRequest">
        /// An instance of WWW after the web request has 
        /// completed and response fields are set
        /// </param>
        public UnityWebResponseData(WWW wwwRequest)
        {
            _logger= Logger.GetLogger(this.GetType());
            _headers = wwwRequest.responseHeaders;
            try
            {
                _responseBody = wwwRequest.bytes;
            }
            catch (Exception)
            {
                _logger.DebugFormat(@"setting response body to null");
                _responseBody = null;
            }

            if (wwwRequest.error == null)
            {
                _logger.DebugFormat(@"recieved successful response");
            }
            else
            {
                _logger.DebugFormat(@"recieved error response");
                _logger.DebugFormat(@"recieved = {0}", wwwRequest.error);
            }

            if ((_responseBody != null && _responseBody.Length > 0) || (_responseBody.Length == 0 && wwwRequest.error == null))
            {
                _logger.DebugFormat(@"{0}", System.Text.UTF8Encoding.UTF8.GetString(_responseBody));
                _responseStream = new MemoryStream(_responseBody);
            }

            this.ContentLength = wwwRequest.bytesDownloaded;

            string contentType = null;
            this._headers.TryGetValue(
                HeaderKeys.ContentTypeHeader.ToUpperInvariant(), out contentType);
            this.ContentType = contentType;
            try
            {
                if(string.IsNullOrEmpty(wwwRequest.error))
                {
                    string statusHeader = string.Empty;
                    this._headers.TryGetValue(HeaderKeys.StatusHeader.ToUpperInvariant(),out statusHeader);
                    if(!string.IsNullOrEmpty(statusHeader))
                    {
                        this.StatusCode = (HttpStatusCode)Enum.Parse(
                        typeof(HttpStatusCode),
                        statusHeader.Substring(9, 3).Trim());
                    }
                    else
                    {
                        this.StatusCode = 0;
                    }
                }
                else
                {
                    int statusCode;
                    if (Int32.TryParse(wwwRequest.error.Substring(0,3), out statusCode))
                        this.StatusCode =  (HttpStatusCode)Enum.Parse(typeof(HttpStatusCode),
                                            wwwRequest.error.Substring(3).Replace(" ", "").Replace(":","").Trim(),true);//ignored case
                    else
                        this.StatusCode = 0;
                }
            }
            catch
            {
                this.StatusCode = 0;
            }
            _logger.DebugFormat(@"Status = {0}", StatusCode);
            this.IsSuccessStatusCode = wwwRequest.error == null?true:false;
        }
示例#4
0
        /// <summary>
        /// The constructor for UnityWebResponseData.
        /// </summary>
        /// <param name="wwwRequest">
        /// An instance of WWW after the web request has
        /// completed and response fields are set
        /// </param>
        public UnityWebResponseData(WWW wwwRequest)
        {
            _logger  = Amazon.Runtime.Internal.Util.Logger.GetLogger(this.GetType());
            _headers = wwwRequest.responseHeaders;

            if (wwwRequest.error == null)
            {
                _logger.DebugFormat(@"recieved successful response");
                _responseBody = wwwRequest.bytes;
            }
            else
            {
                _logger.DebugFormat(@"recieved error response");
            }

            if (_responseBody != null)
            {
                _logger.DebugFormat(@"{0}", System.Text.UTF8Encoding.UTF8.GetString(_responseBody));
                _responseStream = new MemoryStream(wwwRequest.bytes);
            }

            this.ContentLength = wwwRequest.bytesDownloaded;

            string contentType = null;

            this._headers.TryGetValue(
                HeaderKeys.ContentTypeHeader.ToUpperInvariant(), out contentType);
            this.ContentType = contentType;
            try
            {
                if (string.IsNullOrEmpty(wwwRequest.error))
                {
                    string statusHeader = string.Empty;
                    this._headers.TryGetValue(HeaderKeys.StatusHeader.ToUpperInvariant(), out statusHeader);
                    _logger.DebugFormat(@"Status = {0}", statusHeader);
                    if (!string.IsNullOrEmpty(statusHeader))
                    {
                        this.StatusCode = (HttpStatusCode)Enum.Parse(
                            typeof(HttpStatusCode),
                            statusHeader.Substring(9, 3).Trim());
                    }
                    else
                    {
                        this.StatusCode = 0;
                    }
                }
                else
                {
                    int statusCode;
                    if (Int32.TryParse(wwwRequest.error.Substring(0, 3), out statusCode))
                    {
                        this.StatusCode = (HttpStatusCode)Enum.Parse(typeof(HttpStatusCode),
                                                                     wwwRequest.error.Substring(3).Replace(" ", "").Replace(":", "").Trim(), true);//ignored case
                    }
                    else
                    {
                        this.StatusCode = 0;
                    }
                }
            }
            catch
            {
                this.StatusCode = 0;
            }
            this.IsSuccessStatusCode = wwwRequest.error == null?true:false;
        }