コード例 #1
0
        private string webRequest(string url, WebMethod method, string data, string contentType)
        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

            request.Method = method.ToString();
            byte[] buffer = null;
            if (SessionId != "")
            {
                request.ContentType = contentType;
                request.Headers.Add("X-SFDC-Session: " + SessionId);
                buffer = System.Text.Encoding.ASCII.GetBytes(data);
            }
            else
            {
                request.ContentType = "text/xml; charset=utf-8";
                request.Headers.Add("SOAPAction: login");
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(data);
                buffer = System.Text.Encoding.ASCII.GetBytes(doc.InnerXml);
            }
            //"text/csv; charset=UTF-8" or "application/xml; charset=UTF-8"

            Stream postStream = request.GetRequestStream();

            postStream.Write(buffer, 0, buffer.Length);

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            StreamReader resp = new StreamReader(response.GetResponseStream());

            return(resp.ReadToEnd());
        }
コード例 #2
0
        public static HttpWebRequest CreateWebRequest(WebMethod method, WebProxy proxy, string requestUrl, bool preAuth)
        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(requestUrl);
            request.Method = method.ToString();
            request.PreAuthenticate = preAuth;
            request.Proxy = proxy;

            return request;
        }
コード例 #3
0
 public static HttpWebRequest CreateWebRequest(string fullUrl, WebMethod method, string nonce, string timeStamp, string sig, string contentType, OAuthToken consumerToken, OAuthToken oauthToken, WebProxy proxy)
 {
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(fullUrl);
     request.Method = method.ToString();
     request.Proxy = proxy;
     string authHeader = CreateAuthHeader(method, nonce, timeStamp, sig, consumerToken, oauthToken);
     //request.ContentType = "multipart/form-data; boundary=" + boundary;
     request.ContentType = contentType;
     request.Headers.Add("Authorization", authHeader);
     return request;
 }
コード例 #4
0
        private HttpWebRequest PreSetupRequest(string url, WebMethod method)
        {
            if (_loggedin)
            {
                Login();
            }

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            request.CookieContainer = new CookieContainer();
            request.Method          = method.ToString();

            if (Cookies != null)
            {
                request.CookieContainer.Add(Cookies);
            }

            return(request);
        }
コード例 #5
0
ファイル: HttpUtility.cs プロジェクト: victorlxj/yammer.net
        public static string GetSignature(WebMethod method, string url, out string timestamp, out string nonce)
        {
            OAuthBase oAuth = new OAuthBase();
            nonce = oAuth.GenerateNonce();
            timestamp = oAuth.GenerateTimeStamp();
            string nurl, nrp;

            Uri uri = new Uri(url);
            string sig = oAuth.GenerateSignature(
                uri,
                Yammer.Session.Auth.Key.ConsumerKey,
                Yammer.Session.Auth.Key.ConsumerSecret,
                Yammer.Session.Auth.Key.TokenKey,
                Yammer.Session.Auth.Key.TokenSecret,
                method.ToString(),
                timestamp,
                nonce,
                OAuthBase.SignatureTypes.PLAINTEXT, out nurl, out nrp);

            return System.Web.HttpUtility.UrlEncode(sig);
        }
コード例 #6
0
ファイル: HttpUtility.cs プロジェクト: victorlxj/yammer.net
 public static HttpWebRequest CreateWebRequest(string fullUrl, WebMethod method, string nonce, string timeStamp, string sig, string boundary)
 {
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(fullUrl);
     request.Method = method.ToString();
     request.Proxy = Yammer.Session.WebProxy;
     string authHeader = CreateAuthHeader(method, nonce, timeStamp, sig);
     request.ContentType = "multipart/form-data; boundary=" + boundary;
     request.Headers.Add("Authorization", authHeader);
     return request;
 }
コード例 #7
0
ファイル: HttpUtility.cs プロジェクト: victorlxj/yammer.net
        private static HttpWebRequest CreateWebRequest(string fullUrl, WebMethod method, string[] oauthParams)
        {
            string nonce, timeStamp, sig;
            nonce = oauthParams[0];
            timeStamp = oauthParams[1];
            sig = oauthParams[2];
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(fullUrl);
            request.ServicePoint.Expect100Continue = false;
            request.KeepAlive = false;
            request.ProtocolVersion = HttpVersion.Version10;
            request.Method = method.ToString();
            request.Proxy = Yammer.Session.WebProxy;
            string authHeader = CreateAuthHeader(method, nonce, timeStamp, sig);
            request.ContentType = "text/plain";
            request.Headers.Add("Authorization", authHeader);

            return request;
        }
コード例 #8
0
ファイル: HttpUtility.cs プロジェクト: victorlxj/yammer.net
        private static HttpWebRequest CreateWebRequest(string fullUrl, WebMethod method, string nonce, string timeStamp, string sig)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(fullUrl);
            request.Method = method.ToString();
            request.Proxy = Yammer.Session.WebProxy;
            string authHeader = CreateAuthHeader(method, nonce, timeStamp, sig);
            request.ContentType = "application/x-www-form-urlencoded";
            request.Headers.Add("Authorization", authHeader);

            return request;
        }
コード例 #9
0
        /// <summary>
        /// Submit a web request using oAuth.
        /// </summary>
        /// <param name="method">GET or POST</param>
        /// <param name="url">The full url, including the querystring.</param>
        /// <param name="postData">Data to post (querystring format)</param>
        /// <returns>The web server response.</returns>
        public IResponseReader GetResponseReader(WebMethod method, string url, string postData)
        {
            string outUrl = "";
            string querystring = "";
            string ret = "";

            //Setup postData for signing.
            //Add the postData to the querystring.
            if (method == WebMethod.POST)
            {
                if (postData.Length > 0)
                {
                    //Decode the parameters and re-encode using the oAuth UrlEncode method.
                    NameValueCollection qs = HttpUtility.ParseQueryString(postData);
                    postData = "";
                    foreach (string key in qs.AllKeys)
                    {
                        if (postData.Length > 0)
                        {
                            postData += "&";
                        }
                        qs[key] = HttpUtility.UrlDecode(qs[key]);
                        qs[key] = this.UrlEncode(qs[key]);
                        postData += key + "=" + qs[key];

                    }
                    if (url.IndexOf("?") > 0)
                    {
                        url += "&";
                    }
                    else
                    {
                        url += "?";
                    }
                    url += postData;
                }
            }

            Uri uri = new Uri(url);

            string nonce = this.GenerateNonce();
            string timeStamp = this.GenerateTimeStamp();

            //Generate Signature
            string sig = this.GenerateSignature(uri,
                                                this.ConsumerKey,
                                                this.ConsumerSecret,
                                                this.Token,
                                                this.TokenSecret,
                                                this.CallBackUrl,
                                                this.OAuthVerifier,
                                                method.ToString(),
                                                timeStamp,
                                                nonce,
                                                out outUrl,
                                                out querystring);

            querystring += "&oauth_signature=" + UrlEncode(sig);

            //Convert the querystring to postData
            if (method == WebMethod.POST)
            {
                postData = querystring;
                querystring = "";
            }

            if (querystring.Length > 0)
            {
                outUrl += "?";
            }

            return new ResponseReader(method, outUrl +  querystring, postData);
        }
コード例 #10
0
        private void Request(ILogger logger, string name, string path, WebMethod method, object payload)
        {
            var fullUrl = _baseUrl + path;

            // - Debug information
            var payloadToJson = payload != null?JsonConvert.SerializeObject(payload) : null;

            var stopwatch = new Stopwatch();

            logger.WriteLine("");
            logger.WriteLine("---------------- new request ----------------");
            logger.WriteLine($"Request: {fullUrl}");
            logger.WriteLine($"Method:  {method}");
            if (!string.IsNullOrEmpty(payloadToJson))
            {
                logger.WriteLine("------------------ payload ------------------");
                logger.WriteLine(payloadToJson);
                logger.WriteLine("---------------------------------------------");
            }
            else
            {
                logger.WriteLine("Without payload");
            }

            stopwatch.Start();
            // - End debug information

            // Create a WebRequest (JSON, with method)
            var request = (HttpWebRequest)WebRequest.Create(fullUrl);

            request.Method           = method.ToString();
            request.CookieContainer  = _container;
            request.Timeout          = int.MaxValue;
            request.ReadWriteTimeout = int.MaxValue;
            request.ContinueTimeout  = int.MaxValue;

            try
            {
                // Write response to stream
                if (!string.IsNullOrEmpty(payloadToJson))
                {
                    request.ContentType = "application/json; charset=UTF-8";
                    using (var streamWriter = new StreamWriter(request.GetRequestStream()))
                    {
                        streamWriter.Write(payloadToJson);
                        streamWriter.Flush();
                        streamWriter.Close();
                    }
                }

                // Receive initial headers:
                var response = (HttpWebResponse)request.GetResponse();

                // - Debug information
                logger.WriteLine($"Statuscode:      {((int)response.StatusCode)}");
                logger.WriteLine($"Elapsed time:    {stopwatch.Elapsed}");
                // - End debug information

                // Write to file when having a name
                if (!string.IsNullOrEmpty(name))
                {
                    logger.WriteLine($"-- Writing response to file: {name}.json --");

                    // Create directory
                    Directory.CreateDirectory(Path.GetDirectoryName(name));

                    using (var file = File.Create($"{name}.json"))
                    {
                        response.GetResponseStream().CopyTo(file);
                        file.Flush();
                        file.Close();
                    }
                }

                // - Debug information
                stopwatch.Stop();
                logger.WriteLine($"End time:        {stopwatch.Elapsed}");
                logger.WriteLine($"Bytes received:  {response.ContentLength}");
                // - End debug information
                response.Close();
            }
            catch (Exception e)
            {
                logger.WriteLine(e.ToString());
            }
        }
コード例 #11
0
        public static string WebRequestWithAccept(WebMethod method, string url, string postData)
        {
            HttpWebRequest webRequest = null;
            StreamWriter requestWriter = null;
            string responseData = "";

            webRequest = System.Net.WebRequest.Create(url) as HttpWebRequest;
            webRequest.Method = method.ToString();
            webRequest.ServicePoint.Expect100Continue = false;
            //webRequest.Headers.Add("Content-Type", "application/json");
            //webRequest.Headers.Add("Accept", "application/json");
            webRequest.ContentType = "application/json";
            webRequest.Accept = "application/json";

            /* requestWriter = new StreamWriter(webRequest.GetRequestStream());
             try
             {
                 requestWriter.Write(postData);
             }
             catch
             {
                 throw;
             }
             finally
             {
                 requestWriter.Close();
                 requestWriter = null;
             }*/

            responseData = WebResponseGet(webRequest);
            webRequest = null;
            return responseData;
        }
コード例 #12
0
        public static string WebRequest(WebMethod method, string url, string postData, string access_token, bool isAcceptAdded = false)
        {
            HttpWebRequest webRequest = null;
            StreamWriter requestWriter = null;
            string responseData = "";

            webRequest = System.Net.WebRequest.Create(url) as HttpWebRequest;
            webRequest.Method = method.ToString();
            webRequest.ServicePoint.Expect100Continue = false;
            webRequest.ContentType = "application/json";
            if (isAcceptAdded)
            {
                webRequest.Accept = "application/json";
            }
            //webRequest.UserAgent  = "Identify your application please.";
            //webRequest.Timeout = 20000;

            if (method == WebMethod.DELETE)
            {
                if (!string.IsNullOrEmpty(access_token))
                {
                    webRequest.Headers.Add("Authorization", "Bearer " + access_token);
                }
            }
            else if (method == WebMethod.POST)
            {
                if (!string.IsNullOrEmpty(access_token))
                {
                    webRequest.Headers.Add("Authorization", "Bearer " + access_token);
                }

                webRequest.ContentType = "application/json";
                webRequest.Accept = "application/json";
                //webRequest.ContentType = "application/x-www-form-urlencoded";

                //POST the data.
                requestWriter = new StreamWriter(webRequest.GetRequestStream());
                try
                {
                    requestWriter.Write(postData);
                }
                catch
                {
                    throw;
                }
                finally
                {
                    requestWriter.Close();
                    requestWriter = null;
                }
            }

            responseData = WebResponseGet(webRequest);
            webRequest = null;
            return responseData;
        }
コード例 #13
0
        public static string GetSignature(WebMethod method, OAuthToken consumerToken, OAuthToken oauthToken, string url, out string timestamp, out string nonce)
        {
            OAuthBase oAuth = new OAuthBase();
            nonce = oAuth.GenerateNonce();
            timestamp = oAuth.GenerateTimeStamp();
            string nurl, nrp;

            string tokenKey = oauthToken == null ? String.Empty : oauthToken.TokenKey;
            string tokenSecret = oauthToken == null ? String.Empty : oauthToken.TokenSecret;

            Uri uri = new Uri(url);
            string sig = oAuth.GenerateSignature(
                uri,
                consumerToken.TokenKey,
                consumerToken.TokenSecret,
                tokenKey,
                tokenSecret,
                method.ToString(),
                timestamp,
                nonce,
                OAuthBase.SignatureTypes.HMACSHA1, out nurl, out nrp);

            return System.Web.HttpUtility.UrlEncode(sig);
        }