public static async Task <UnityWebRequest> PostAsync(string url, string details, RequestAuthMiddleware authMiddleware = null) { string jsonData = JsonConvert.SerializeObject(new{ query = details }); byte[] postData = Encoding.ASCII.GetBytes(jsonData); UnityWebRequest request = UnityWebRequest.Post(url, UnityWebRequest.kHttpVerbPOST); request.uploadHandler = new UploadHandlerRaw(postData); request.SetRequestHeader("Content-Type", "application/json"); if (authMiddleware != null) { authMiddleware.Prepare(request); Debug.LogFormat("Auth Header: {0}", request.GetRequestHeader("Authorization")); } OnRequestBegin requestBegin = new OnRequestBegin(); requestBegin.FireEvent(); try{ await request.SendWebRequest(); } catch (Exception e) { Debug.Log("Testing exceptions"); OnRequestEnded requestFailed = new OnRequestEnded(e); requestFailed.FireEvent(); } Debug.Log(request.downloadHandler.text); OnRequestEnded requestSucceeded = new OnRequestEnded(request.downloadHandler.text); requestSucceeded.FireEvent(); return(request); }
//Use this to subscribe to a graphql endpoint public static async Task <ClientWebSocket> WebsocketConnect(string subscriptionUrl, string details, RequestAuthMiddleware authMiddleware = null, string socketId = "1", string protocol = "graphql-ws") { string subUrl = subscriptionUrl.Replace("http", "ws"); string id = socketId; ClientWebSocket cws = new ClientWebSocket(); cws.Options.AddSubProtocol(protocol); if (authMiddleware != null) { authMiddleware.Prepare(cws); } Uri u = new Uri(subUrl); try{ await cws.ConnectAsync(u, CancellationToken.None); if (cws.State == WebSocketState.Open) { Debug.Log("connected"); } await WebsocketInit(cws); await WebsocketSend(cws, id, details); } catch (Exception e) { Debug.Log("woe " + e.Message); } return(cws); }