public override IHTTPResponse performSync() { OnStart(); WWW wWW = new WWW(getUrl()); ServicePoint servicePoint = ServicePointManager.FindServicePoint(getUrl(), null); if (servicePoint != null) { Debug.Log("Located service point."); X509Certificate certificate = servicePoint.Certificate; if (certificate != null) { Debug.Log("Certificate hash: " + certificate.GetCertHash()); } } else { Debug.Log("None found"); } HTTPBaseResponseImpl hTTPBaseResponseImpl = new HTTPBaseResponseImpl(this); if (!string.IsNullOrEmpty(wWW.error)) { hTTPBaseResponseImpl.setStatusCode(parseStatusFromMessage(wWW.error)); OnError(hTTPBaseResponseImpl, new HTTPException(wWW.error)); } else { hTTPBaseResponseImpl.setStatusCode(200); hTTPBaseResponseImpl.setDocument(new HTTPBaseDocumentImpl(wWW.bytes)); OnSuccess(hTTPBaseResponseImpl); } OnComplete(); return(hTTPBaseResponseImpl); }
private IEnumerator request() { OnStart(); WWW www = new WWW(getUrl()); ServicePoint sp = ServicePointManager.FindServicePoint(getUrl(), null); if (sp != null) { Debug.Log("Located service point."); X509Certificate certificate = sp.Certificate; if (certificate != null) { Debug.Log("Certificate hash: " + certificate.GetCertHash()); } } else { Debug.Log("None found"); } yield return(www); if (!www.isDone) { yield return(www); } HTTPBaseResponseImpl response = new HTTPBaseResponseImpl(this); if (!string.IsNullOrEmpty(www.error)) { response.setStatusCode(parseStatusFromMessage(www.error)); OnError(response, new HTTPException(www.error)); } else { response.setStatusCode(200); response.setDocument(new HTTPBaseDocumentImpl(www.bytes)); OnSuccess(response); } OnComplete(); }
private IHTTPResponse send() { byte[] array = new byte[DOWNLOAD_BUFFER_SIZE]; ServicePointManager.ServerCertificateValidationCallback = ServerCertificateValidationCallback; Stopwatch stopwatch = new Stopwatch(); HttpWebRequest httpWebRequest = null; byte[] array2 = null; int num = 0; HTTPBaseResponseImpl hTTPBaseResponseImpl = new HTTPBaseResponseImpl(this); try { httpWebRequest = (HttpWebRequest)WebRequest.Create(getUrl()); httpWebRequest.Method = getMethod().ToString(); ServicePointManager.Expect100Continue = false; foreach (string key in getRequestHeaders().Keys) { foreach (string item in getRequestHeaders()[key]) { try { if (key.Equals("Content-Type")) { httpWebRequest.ContentType = item; } else if (key.Equals("Content-Length")) { httpWebRequest.ContentLength = Convert.ToInt64(item); } else if (key.Equals("Accept")) { httpWebRequest.Accept = item; } else { httpWebRequest.Headers.Set(key, item); } } catch (ArgumentException ex) { UnityEngine.Debug.LogWarning("Failed to add the header named '" + key + "' to the request. Exception: " + ex.Message); } } } if ((getMethod() == HTTPMethod.POST || getMethod() == HTTPMethod.PUT) && getDocument() != null) { array2 = getDocument().getData(); if (array2 != null && array2.Length > 0) { httpWebRequest.ContentLength = array2.Length; using (Stream stream = httpWebRequest.GetRequestStream()) { stream.Write(array2, 0, array2.Length); stream.Close(); } } } stopwatch.Start(); HttpWebResponse httpWebResponse = null; Exception ex2 = null; try { httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); } catch (WebException ex3) { UnityEngine.Debug.LogException(ex3); ex2 = ex3; if (ex3.Status == WebExceptionStatus.ProtocolError) { httpWebResponse = (HttpWebResponse)ex3.Response; } } catch (SocketException ex4) { UnityEngine.Debug.LogException(ex4); ex2 = ex4; } long elapsedMilliseconds = stopwatch.ElapsedMilliseconds; if (httpWebResponse == null) { if (ThreadedHTTPFactory.LogAllRequests) { UnityEngine.Debug.Log(InfoString(httpWebRequest, array2, null, null, elapsedMilliseconds, ThreadedHTTPFactory.VerboseLogging)); } } else { byte[] array3 = null; using (Stream stream2 = httpWebResponse.GetResponseStream()) { using (MemoryStream memoryStream = new MemoryStream()) { int num2 = 0; while ((num2 = stream2.Read(array, 0, array.Length)) > 0 && (ThreadBase.CurrentThread == null || !ThreadBase.CurrentThread.ShouldStop)) { memoryStream.Write(array, 0, num2); num += num2; OnProgress(array, num2, num, -1); } array3 = memoryStream.ToArray(); memoryStream.Close(); } stream2.Close(); } if (ThreadedHTTPFactory.LogAllRequests) { UnityEngine.Debug.Log(InfoString(httpWebRequest, array2, httpWebResponse, array3, elapsedMilliseconds, ThreadedHTTPFactory.VerboseLogging)); } hTTPBaseResponseImpl.setStatusCode((int)httpWebResponse.StatusCode); hTTPBaseResponseImpl.setReasonPhrase(httpWebResponse.StatusDescription); HTTPBaseDocumentImpl hTTPBaseDocumentImpl = new HTTPBaseDocumentImpl(array3); hTTPBaseResponseImpl.setDocument(hTTPBaseDocumentImpl); } if (ex2 == null) { OnSuccess(hTTPBaseResponseImpl); } else { OnError(hTTPBaseResponseImpl, ex2); } } catch (Exception exception) { UnityEngine.Debug.LogException(exception); OnError(hTTPBaseResponseImpl, exception); } OnComplete(); return(hTTPBaseResponseImpl); }