public GraphQLQueryResult Query(string query, object variables, string userAgent) { var fullQuery = new GraphQLQuery() { query = query, variables = variables, }; string jsonContent = JsonConvert.SerializeObject(fullQuery); Console.WriteLine(jsonContent); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; UTF8Encoding encoding = new UTF8Encoding(); Byte[] byteArray = encoding.GetBytes(jsonContent.Trim()); request.ContentLength = byteArray.Length; request.ContentType = @"application/json"; request.UserAgent = userAgent; using (Stream dataStream = request.GetRequestStream()) { dataStream.Write(byteArray, 0, byteArray.Length); } long length = 0; try { using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { length = response.ContentLength; using (Stream responseStream = response.GetResponseStream()) { StreamReader reader = new StreamReader(responseStream, Encoding.UTF8); var json = reader.ReadToEnd(); return(new GraphQLQueryResult(json)); } } } catch (WebException ex) { WebResponse errorResponse = ex.Response; using (Stream responseStream = errorResponse.GetResponseStream()) { StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8")); String errorText = reader.ReadToEnd(); Console.WriteLine(errorText); return(new GraphQLQueryResult(null, ex)); } } }
private UnityWebRequest QueryRequest(string query, object variables) { var fullQuery = new GraphQLQuery() { query = query, variables = variables, }; string json = JsonConvert.SerializeObject(fullQuery, Formatting.None); UnityWebRequest request = UnityWebRequest.Post(url, UnityWebRequest.kHttpVerbPOST); byte[] payload = Encoding.UTF8.GetBytes(CloudSaveSettings.Encrypted ? Convert.ToBase64String(RC4.Encrypt(json, CloudSaveSettings.Key)) : json); request.uploadHandler = new UploadHandlerRaw(payload); request.SetRequestHeader("Content-Type", "application/memorycloud.custom-type"); request.SetRequestHeader("Authorization", "Bearer " + AccessToken.CurrentAccessToken.TokenString); request.SetRequestHeader("AppId", FB.AppId); return(request); }
private UnityWebRequest QueryRequest(string query, object variables, string token = null) { var fullQuery = new GraphQLQuery() { query = query, variables = variables, }; string json = JsonConvert.SerializeObject(fullQuery); UnityWebRequest request = UnityWebRequest.Post(url, UnityWebRequest.kHttpVerbPOST); byte[] payload = Encoding.UTF8.GetBytes(json); request.uploadHandler = new UploadHandlerRaw(payload); request.SetRequestHeader("Content-Type", "application/json"); if (token != null) { request.SetRequestHeader("Authorization", "Bearer " + token); } return(request); }
public UnityWebRequest Query(string query, string variables, string operationName) { var fullQuery = new GraphQLQuery() { query = query, variables = variables, operationName = operationName }; string json = JsonUtility.ToJson(fullQuery); //string sToken = ""; UnityWebRequest request = UnityWebRequest.Post(url, UnityWebRequest.kHttpVerbPOST); byte[] payload = Encoding.UTF8.GetBytes(json); UploadHandler data = new UploadHandlerRaw(payload); request.uploadHandler = data; request.SetRequestHeader("Content-Type", "application/json"); //request.SetRequestHeader ("Authorization", "Bearer " + sToken); return(request); }
/// <summary> /// Performs a request to the GraphQL API with the given variables. /// </summary> /// <param name="query">The query to be performed.</param> /// <param name="variables">The variables that will be added to the Query.</param> /// <returns>The result of the query.</returns> /// <exception cref="GraphQLRequestException">When there's a communication problem.</exception> public GraphQLQueryResult Query(string query, object variables = null) { var fullQuery = new GraphQLQuery() { query = query, variables = variables ?? new object { }, }; var jsonContent = JsonConvert.SerializeObject(fullQuery); var request = WebRequest.Create(_url); request.Method = "POST"; _configureHeaders?.Invoke(request.Headers); var encoding = new UTF8Encoding(); var byteArray = encoding.GetBytes(jsonContent.Trim()); request.ContentLength = byteArray.Length; request.ContentType = @"application/json"; using (var dataStream = request.GetRequestStream()) { dataStream.Write(byteArray, 0, byteArray.Length); } try { using (var response = (HttpWebResponse)request.GetResponse()) { using (var responseStream = response.GetResponseStream()) { var reader = new StreamReader(responseStream, Encoding.UTF8); var json = reader.ReadToEnd(); return(new GraphQLQueryResult( json, response.Headers.AllKeys.ToDictionary( h => h, h => response.Headers[h] ) )); } } } catch (WebException ex) { var errorResponse = ex.Response; using (var responseStream = errorResponse.GetResponseStream()) { var reader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8")); var errorText = reader.ReadToEnd(); throw new GraphQLRequestException( ex.Message, errorText, errorResponse.Headers.AllKeys.ToDictionary( h => h, h => errorResponse.Headers[h] ), ex ); } } }