// Token: 0x0600121B RID: 4635 RVA: 0x0001E1F0 File Offset: 0x0001C3F0 public static void RecordWebServiceBegin(string method, int bytes) { WebServiceStatistics.Statistics statistics = WebServiceStatistics.GetStatistics(method); statistics.Counter++; statistics.OutgoingBytes += bytes; WebServiceStatistics.TotalBytesOut += (long)bytes; statistics.LastCall = DateTime.UtcNow; }
// Token: 0x0600121C RID: 4636 RVA: 0x0001E238 File Offset: 0x0001C438 public static void RecordWebServiceEnd(string method, int bytes, bool success) { WebServiceStatistics.Statistics statistics = WebServiceStatistics.GetStatistics(method); statistics.IncomingBytes += bytes; WebServiceStatistics.TotalBytesIn += (long)bytes; if (!success) { statistics.FailCounter++; } statistics.Time = (float)DateTime.UtcNow.Subtract(statistics.LastCall).TotalSeconds; }
// Token: 0x06001131 RID: 4401 RVA: 0x0001B310 File Offset: 0x00019510 public static IEnumerator MakeRequest(string interfaceName, string serviceName, string methodName, byte[] data, Action <byte[]> requestCallback, Action <Exception> exceptionHandler) { int requestId = SoapClient._requestId++; string postData = string.Concat(new string[] { "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"><s:Body><", methodName, " xmlns=\"http://tempuri.org/\"><data>", Convert.ToBase64String(data), "</data></", methodName, "></s:Body></s:Envelope>" }); byte[] byteArray = Encoding.UTF8.GetBytes(postData); Dictionary <string, string> headers = new Dictionary <string, string>(); headers.Add("SOAPAction", string.Concat(new string[] { "\"http://tempuri.org/", interfaceName, "/", methodName, "\"" })); headers.Add("Content-type", "text/xml; charset=utf-8"); XmlDocument doc = new XmlDocument(); float startTime = Time.realtimeSinceStartup; SoapClient.LogRequest(requestId, startTime, data.Length, interfaceName, serviceName, methodName); yield return(new WaitForEndOfFrame()); if (WebServiceStatistics.IsEnabled) { WebServiceStatistics.RecordWebServiceBegin(methodName, byteArray.Length); } byte[] returnData = null; using (WWW request = new WWW(Configuration.WebserviceBaseUrl + serviceName, byteArray, headers)) { yield return(request); if (WebServiceStatistics.IsEnabled) { WebServiceStatistics.RecordWebServiceEnd(methodName, request.bytes.Length, request.isDone && string.IsNullOrEmpty(request.error)); } try { if (Configuration.SimulateWebservicesFail) { throw new Exception("Simulated Webservice fail when calling " + interfaceName + "/" + methodName); } if (!request.isDone || !string.IsNullOrEmpty(request.error)) { SoapClient.LogResponse(requestId, Time.realtimeSinceStartup, request.error, Time.time - startTime, 0); throw new Exception(string.Concat(new string[] { request.error, "\nWWW Url: ", Configuration.WebserviceBaseUrl, "\nService: ", serviceName, "\nMethod: ", methodName })); } if (!string.IsNullOrEmpty(request.text)) { try { doc.LoadXml(request.text); XmlNodeList result = doc.GetElementsByTagName(methodName + "Result"); if (result.Count <= 0) { SoapClient.LogResponse(requestId, Time.realtimeSinceStartup, request.text, Time.time - startTime, 0); throw new Exception(string.Concat(new string[] { "WWW Request to ", Configuration.WebserviceBaseUrl, serviceName, " failed with content", request.text })); } returnData = Convert.FromBase64String(result[0].InnerXml); if (returnData.Length == 0) { SoapClient.LogResponse(requestId, Time.realtimeSinceStartup, request.text, Time.time - startTime, 0); throw new Exception(string.Concat(new string[] { "WWW Request to ", Configuration.WebserviceBaseUrl, serviceName, " failed with content", request.text })); } SoapClient.LogResponse(requestId, Time.realtimeSinceStartup, "OK", Time.realtimeSinceStartup - startTime, request.bytes.Length); } catch { SoapClient.LogResponse(requestId, Time.time, request.text, Time.realtimeSinceStartup - startTime, 0); throw new Exception(string.Concat(new string[] { "Error reading XML return for method call ", interfaceName, "/", methodName, ":", request.text })); } } if (requestCallback != null) { requestCallback(returnData); } } catch (Exception ex) { Exception e = ex; if (exceptionHandler != null) { exceptionHandler(e); } else { Debug.LogError("SoapClient Unhandled Exception: " + e.Message + "\n" + e.StackTrace); } } } yield break; }