public UnityWebResponseData(UnityWebRequestWrapper unityWebRequest)
{
CopyHeaderValues(unityWebRequest.ResponseHeaders);
if (!unityWebRequest.IsError)
{
_responseBody = unityWebRequest.DownloadHandler.Data;
if (_responseBody == null)
{
_responseBody = new byte[0];
}
_responseStream = new MemoryStream(_responseBody);
this.ContentLength = _responseBody.LongLength;
string contentType = null;
this._headers.TryGetValue(HeaderKeys.ContentTypeHeader, out contentType);
this.ContentType = contentType;
if (unityWebRequest.StatusCode.HasValue)
this.StatusCode = unityWebRequest.StatusCode.Value;
this.IsSuccessStatusCode = this.StatusCode >= HttpStatusCode.OK && this.StatusCode <= (HttpStatusCode)299;
}
else
{
this.IsSuccessStatusCode = false;
this._responseBody = UTF8Encoding.UTF8.GetBytes(unityWebRequest.Error);
_responseStream = new MemoryStream(_responseBody);
if (unityWebRequest.DownloadedBytes > 0)
{
this.ContentLength = (long)unityWebRequest.DownloadedBytes;
}
else
{
string contentLength = null;
if (this._headers.TryGetValue(HeaderKeys.ContentLengthHeader, out contentLength))
{
long cl;
if(long.TryParse(contentLength,out cl))
this.ContentLength = cl;
else
this.ContentLength = 0;
}
else
{
this.ContentLength = this._responseBody.Length;
}
}
if (unityWebRequest.StatusCode.HasValue)
{
this.StatusCode = unityWebRequest.StatusCode.Value;
}
else
{
string statusCode = null;
if (this._headers.TryGetValue(HeaderKeys.StatusHeader, out statusCode))
{
this.StatusCode = (HttpStatusCode)Enum.Parse(typeof(HttpStatusCode), statusCode);
}
else
{
this.StatusCode = 0;
}
}
}
}