public void createRESTRequest(RESTRequest rest_request, string URI, string method, string body)
        {
            HttpWebRequest req = WebRequest.Create(new Uri(URI))
                           as HttpWebRequest;
            req.Method = method;
            req.Headers["Authorization"] = "OAuth " + OAuthConnection.AccessToken;
            req.Headers["User-Agent"] = "salesforce-toolkit/Windows7/20";
            if (method == "POST" || method == "PATCH")
            {
                req.ContentType = "application/json";
                req.BeginGetRequestStream(
                    (result) =>
                    {
                        HttpWebRequest request = (HttpWebRequest)result.AsyncState;
                        System.IO.Stream postStream = request.EndGetRequestStream(result);
                        string postData = body;
                        byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(postData);

                        // Write to the request stream.
                        postStream.Write(byteArray, 0, postData.Length);
                        postStream.Close();
                        // Start the asynchronous operation to get the response
                        request.BeginGetResponse(
                                        (postresult) =>
                                        {
                                            try
                                            {
                                                RESTResult restresult = new RESTResult();
                                                restresult.request = rest_request;
                                                restresult.data = getHTTPResult(postresult,method);
                                                restresult.request.callback( restresult );
                                            }
                                            catch (WebException wex)
                                            {
                                                RESTResult restresult = new RESTResult();
                                                restresult.request = rest_request;
                                                string error = handleHTTPError(wex);
                                                restresult.data = JObject.Parse(error.Substring(1, error.Length - 1));
                                                restresult.message = (string)restresult.data["message"];
                                                restresult.request.errorCallback( restresult );
                                            }

                                        }, req);
                    }, req);

            }
            else
            {
                req.BeginGetResponse(
                    (result) =>
                    {
                        try
                        {
                            RESTResult restresult = new RESTResult();
                            restresult.request = rest_request;
                            restresult.data = getHTTPResult(result, method);
                            restresult.request.callback(restresult);
                        }
                        catch (WebException wex)
                        {
                            RESTResult restresult = new RESTResult();
                            restresult.request = rest_request;
                            string error = handleHTTPError(wex);
                            restresult.data = JObject.Parse(error.Substring(1, error.Length - 1));
                            restresult.message = (string)restresult.data["message"];

                            restresult.request.errorCallback(restresult);
                        }

                    }, req);

            }
        }
示例#2
0
        public void createRESTRequest(RESTRequest rest_request, string URI, string method, string body)
        {
            HttpWebRequest req = WebRequest.Create(new Uri(URI))
                                 as HttpWebRequest;

            req.Method = method;
            req.Headers["Authorization"] = "OAuth " + OAuthConnection.AccessToken;
            req.Headers["User-Agent"]    = "salesforce-toolkit/Windows7/20";
            if (method == "POST" || method == "PATCH")
            {
                req.ContentType = "application/json";
                req.BeginGetRequestStream(
                    (result) =>
                {
                    HttpWebRequest request      = (HttpWebRequest)result.AsyncState;
                    System.IO.Stream postStream = request.EndGetRequestStream(result);
                    string postData             = body;
                    byte[] byteArray            = System.Text.Encoding.UTF8.GetBytes(postData);

                    // Write to the request stream.
                    postStream.Write(byteArray, 0, postData.Length);
                    postStream.Close();
                    // Start the asynchronous operation to get the response
                    request.BeginGetResponse(
                        (postresult) =>
                    {
                        try
                        {
                            RESTResult restresult = new RESTResult();
                            restresult.request    = rest_request;
                            restresult.data       = getHTTPResult(postresult, method);
                            restresult.request.callback(restresult);
                        }
                        catch (WebException wex)
                        {
                            RESTResult restresult = new RESTResult();
                            restresult.request    = rest_request;
                            string error          = handleHTTPError(wex);
                            restresult.data       = JObject.Parse(error.Substring(1, error.Length - 1));
                            restresult.message    = (string)restresult.data["message"];
                            restresult.request.errorCallback(restresult);
                        }
                    }, req);
                }, req);
            }
            else
            {
                req.BeginGetResponse(
                    (result) =>
                {
                    try
                    {
                        RESTResult restresult = new RESTResult();
                        restresult.request    = rest_request;
                        restresult.data       = getHTTPResult(result, method);
                        restresult.request.callback(restresult);
                    }
                    catch (WebException wex)
                    {
                        RESTResult restresult = new RESTResult();
                        restresult.request    = rest_request;
                        string error          = handleHTTPError(wex);
                        restresult.data       = JObject.Parse(error.Substring(1, error.Length - 1));
                        restresult.message    = (string)restresult.data["message"];

                        restresult.request.errorCallback(restresult);
                    }
                }, req);
            }
        }