AddHeader() публичный Метод

public AddHeader ( string name, string value ) : void
name string
value string
Результат void
Пример #1
0
        public static IEnumerator delete(string url, string sessionToken, Action<bool,object> callback = null)
        {
            if (GamedoniaBackend.INSTANCE.debug) {
                String debugMsg = "[Api Call] - " + url;
                Debug.Log(debugMsg);
            }

            string path = _baseURL + "/" + _version + url;
            string date = GetCurrentDate();
            Request request = new Request("delete",path);
            if (!string.IsNullOrEmpty(sessionToken)) request.AddHeader(GD_SESSION_TOKEN,sessionToken);
            request.AddHeader(GD_APIKEY, _apiKey);
            request.AddHeader("Date", date);
            request.AddHeader(GD_SIGNATURE, Sign(_apiKey, _secret, date, "DELETE", request.uri.AbsolutePath));

            request.Send();

            while (!request.isDone) {	yield return null; }

            if (request.response.status == 200) {
                if (GamedoniaBackend.INSTANCE.debug) Debug.Log("[Api Response][" + url + "] - " + request.response.status + " " + request.response.Text);
                callback(true, request.response.Text);
            }else {

                printResponseLog(url, request.response);
                GDError error = GDError.buildError(request.response);
                GamedoniaBackend.INSTANCE.lastError = error;
                callback(false, request.response.message + ' ' + request.response.Text);
            }
        }
Пример #2
0
    // Query Access Token Coroutine
    IEnumerator QueryAccessToken(string name, string password)
    {
        // Populate HTML request
        HTTP.Request request = new HTTP.Request("POST", "http://api.stackmob.com/user/accessToken");
        request.Text = string.Format("username={0}&password={1}&token_type=mac", name, password);

        // Add request headers
        request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
        request.AddHeader("Accept", acceptHeader);
        request.AddHeader("X-StackMob-API-Key", apiKey);
        request.AddHeader("X-StackMob-User-Agent", "StackMob Platform");

        // Send request
        request.Send();

        // Yield coroutine until request returns
        while (!request.isDone)
        {
            yield return(null);
        }

        // Dump request response to debug console
        Debug.Log(request.response.Text);

        // Parse JSON object
        Hashtable table = JSON.JsonDecode(request.response.Text) as Hashtable;

        // Store Mac Key & Access Token
        accessToken = GetString("access_token", table);
        macKey      = GetString("mac_key", table);

        // Query a schema with permissions enabled (ie. Allow any logged in user)
        StartCoroutine(Query("GET", "http://api.mob1.stackmob.com/safe"));
    }
Пример #3
0
 public HTTP.Request Request(string method, string path, object payLoad)
 {
     var url = baseURL + path;
     var r = new HTTP.Request (method, url);
     r.AddHeader ("X-Parse-Application-Id", applicationId);
     r.AddHeader ("X-Parse-REST-API-Key", RESTAPIKey);
     if(sessionToken != null) r.AddHeader ("X-Parse-Session-Token", sessionToken);
     r.AddHeader ("Content-Type", "application/json");
     if(payLoad != null) r.Text = JSON.JsonEncode (payLoad);
     return r;
 }
Пример #4
0
    public void RegisterPoints(Vector3[] points)
    {
        int counter = 0;
        string flow = "[";
        for(int i = 0; i < points.Length; i++)
        {
            if(counter != 0)
                flow += ",";
            flow += points[i].x + "," + points[i].y + "," + points[i].z;

            counter++;
            if(counter >= MAX_POINTS_PER_REQUEST)
            {
                flow += "]";
                byte[] input = Encoding.UTF8.GetBytes(flow);
                HTTP.Request someRequest = new HTTP.Request( "post", url + "/points", input );
                someRequest.AddHeader("Content-Type", "application/json");
                someRequest.Send( ( request ) => {

                    // LOGGER Debug.Log( request.response.Text );
                });

                flow = "[";
                counter = 0;
            }
        }
        // TODO regiser last batch of points
        flow += "]";
    }
Пример #5
0
    public HTTP.Request Request(string method, string path, object payLoad)
    {
        var url = baseURL + path;
        var r   = new HTTP.Request(method, url);

        r.AddHeader("X-Parse-Application-Id", applicationId);
        r.AddHeader("X-Parse-REST-API-Key", RESTAPIKey);
        if (sessionToken != null)
        {
            r.AddHeader("X-Parse-Session-Token", sessionToken);
        }
        r.AddHeader("Content-Type", "application/json");
        if (payLoad != null)
        {
            r.Text = JSON.JsonEncode(payLoad);
        }
        return(r);
    }
Пример #6
0
    // General Query Coroutine
    IEnumerator Query(string method, string url)
    {
        // Populate HTML request
        HTTP.Request request = new HTTP.Request(method, url);

        // Add request headers
        request.AddHeader("Accept", acceptHeader);
        request.AddHeader("X-StackMob-API-Key", apiKey);
        request.AddHeader("X-StackMob-User-Agent", "StackMob Platform");
        request.AddHeader("Authorization", GenerateAuthorizationHeader(method, url));

        // Send request
        request.Send();

        // Yield coroutine until request returns
        while (!request.isDone)
        {
            yield return(null);
        }

        // Dump request response to debug console
        Debug.Log(request.response.Text);
    }
Пример #7
0
        public void Connect(Uri uri)
        {
            isDone    = false;
            connected = false;
            //var host = uri.Host + (uri.Port == 80 ? "" : ":" + uri.Port.ToString ());
            var req = new Request("GET", uri.ToString());

            req.SetHeader("Upgrade", "websocket");
            req.SetHeader("Connection", "Upgrade");
            var key = WebSocketKey();

            req.SetHeader("Sec-WebSocket-Key", key);
            req.AddHeader("Sec-WebSocket-Protocol", "chat, superchat");
            req.SetHeader("Sec-WebSocket-Version", "13");
            req.SetHeader("Origin", "null");
            req.acceptGzip = false;
            req.Send((Response obj) => {
                if (obj.GetHeader("Upgrade").ToLower() == "websocket" && obj.GetHeader("Connection").ToLower() == "upgrade")
                {
                    var receivedKey = obj.GetHeader("Sec-Websocket-Accept").ToLower();
                    var sha         = System.Security.Cryptography.SHA1.Create();
                    sha.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(key + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"));
                    var computedKey = System.Convert.ToBase64String(sha.Hash).ToLower();
                    if (computedKey == receivedKey)
                    {
                        //good to go
                        connected            = true;
                        connection           = req.upgradedConnection;
                        outgoingWorkerThread = new Thread(OutgoingWorker);
                        outgoingWorkerThread.Start();
                        incomingWorkerThread = new Thread(IncomingWorker);
                        incomingWorkerThread.Start();
                        SimpleWWW.Instance.StartCoroutine(Dispatcher());
                        SimpleWWW.Instance.OnQuit(() => {
                            Close(CloseEventCode.CloseEventCodeNotSpecified, "Quit");
                            req.upgradedConnection.client.Close();
                        });
                    }
                    else
                    {
                        //invalid
                        connected = false;
                    }
                }
                isDone = true;
            });
        }
Пример #8
0
    public void RegisterSphere(int id, Vector3 center, float radius)
    {
        string inputStr = "[{\"id\":" + id + ", " +
            "\"center\": {" +
            "\"x\":" + center.x + ", " +
            "\"y\":" + center.y + ", " +
            "\"z\":" + center.z + "}, " +
            "\"radius\":" + radius + "}]";

        // LOGGER Debug.Log (inputStr);

        byte[] input = Encoding.UTF8.GetBytes(inputStr);
        HTTP.Request request = new HTTP.Request( "post", url + "/spheres", input );
        request.AddHeader("Content-Type", "application/json");
        request.Send( ( req ) => {
            // LOGGER Debug.Log( req.response.Text );
        });
    }
Пример #9
0
        public static IEnumerator put(string url, string content, string auth = null, string sessionToken = null, string gameid = null, Action<bool,object> callback = null)
        {
            if (GamedoniaBackend.INSTANCE.debug) {
                String debugMsg = "[Api Call] - " + url;
                if (!String.IsNullOrEmpty(content)) debugMsg += " " + content;
                Debug.Log(debugMsg);
            }

            string path = _baseURL + "/" + _version + url;

            Request request = new Request("PUT",path);
            request.AddHeader("Content-Type",_content_type);
            request.AddHeader(GD_APIKEY, _apiKey);

            if (!string.IsNullOrEmpty(auth)) request.AddHeader(GD_AUTH, auth);
            if (!string.IsNullOrEmpty(sessionToken)) request.AddHeader(GD_SESSION_TOKEN, sessionToken);
            if (!string.IsNullOrEmpty(gameid)) request.AddHeader(GD_GAMEID, gameid);

            if (!string.IsNullOrEmpty(content)) {

                //Sign data to post
                string date = GetCurrentDate();
                string hmac = Sign(_apiKey, _secret, Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(content)), _content_type, date, "PUT", request.uri.AbsolutePath);

                request.AddHeader(GD_SIGNATURE,hmac);
                request.AddHeader("Date", date);
                request.bytes = Encoding.UTF8.GetBytes(content);
            }

            request.Send();

            while (!request.isDone)
            {
                yield return null;
            }

            if (request.response.status == 200) {
                if (GamedoniaBackend.INSTANCE.debug) Debug.Log("[Api Response][" + url + "] - " + request.response.status + " " + request.response.Text);
                callback(true, request.response.Text);
            }else {

                printResponseLog(url,request.response);
                GDError error = GDError.buildError(request.response);
                GamedoniaBackend.INSTANCE.lastError = error;
                callback(false, request.response.message);
            }
        }
Пример #10
0
	public static IEnumerator	PostJoinWorld( int worldId, string playerClass ) {
		HTTP.Request request = new HTTP.Request( "Post", string.Format("{0}/worlds/{1}/players.json", urlServer, worldId) );
		request.AddHeader( "type", playerClass );
		request.AddParameters( WebRequests.authenticatedGodModeParameters );
		request.Send();
		
		while( !request.isDone ) {
			yield return 0;
		}
	}