public FileStreamResult Index(string uid, string path) { LogRequest(HttpContext); var req = HttpContext.Request; Sync sync = new Sync(uid); RequestEnvelop request = new RequestEnvelop { Uid = uid, RequestId = sync.RequestId, Request = new FwdRequest { RequestId = sync.RequestId, Path = path, Method = req.Method, ContentType = req.ContentType, Body = req.Body.AsString() } }; foreach (var kvp in req.Cookies) { request.Request.Cookies[kvp.Key] = kvp.Value; } foreach (var kvp in req.Headers) { if (!request.Request.Headers.ContainsKey(kvp.Key)) { request.Request.Headers[kvp.Key] = new FwdRequest.HeaderValues(); } foreach (string item in kvp.Value) { request.Request.Headers[kvp.Key].Add(item); } } _messagingService.SendMessage(uid, request.Request); ResponseEnvelop response = sync.GetResponse(); FileStreamResult result = new FileStreamResult(response.ResponseStream, response.ContentType); return(result); }
ResponseEnvelop apiRequest(string apiEndPoint, RequestEnvelop requestEnvelop) { requestEnvelop.Direction = Direction.Request; requestEnvelop.RpcId = 7309341774315520108; requestEnvelop.Latitude = m_coordLatitude; requestEnvelop.Longitude = m_coordLongitude; requestEnvelop.Altitude = m_coordAltitude; requestEnvelop.Unknown12 = 989; requestEnvelop.Auth = new RequestEnvelop.Types.AuthInfo() { Provider = (m_authType == AuthenticationService.AuthenticationType.Google) ? "google" : "ptc", Token = new RequestEnvelop.Types.AuthInfo.Types.JWT() { Contents = m_accessToken, Unknown13 = 59 } }; var memoryStream = new System.IO.MemoryStream(); var outStream = new CodedOutputStream(memoryStream, false); requestEnvelop.WriteTo(outStream); outStream.Flush(); memoryStream.Position = 0; var memoryReader = new System.IO.BinaryReader(memoryStream); byte[] data = memoryReader.ReadBytes((int)memoryStream.Length); data = HttpHelper.Post(apiEndPoint, data); var responseEnvelop = new ResponseEnvelop(); var messageParser = new MessageParser <ResponseEnvelop>(() => { return(new ResponseEnvelop()); }); responseEnvelop = messageParser.ParseFrom(data); return(responseEnvelop); }
public StatusCodeResult ClientResponse(string uid, string requestId) { var sync = Sync.GetSync(uid, requestId); if (sync != null) { string code = Request.Headers["statusCode"].ToString(); HttpStatusCode statusCode = (HttpStatusCode)Enum.Parse(typeof(HttpStatusCode), code); ResponseEnvelop responseEnv = new ResponseEnvelop { ResponseStream = Request.Body, ContentType = Request.ContentType, StatusCode = statusCode }; sync.Complete(responseEnv); return(new StatusCodeResult((int)HttpStatusCode.OK)); } else { return(new StatusCodeResult((int)HttpStatusCode.NotFound)); } }
public bool Complete(ResponseEnvelop response) { Response = response; return(_mse.Set()); }