示例#1
0
        protected string invoke(HttpMethod method, Dictionary <string, string> data = null)
        {
            reset();

            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

            string uri = getEndpoint();

            if (data.ContainsKey("namespace"))
            {
                uri = uri + "/" + data ["namespace"];
            }

            if (data.ContainsKey("token") &&
                (method == HttpMethod.Get ||
                 method == HttpMethod.Put ||
                 method == HttpMethod.Delete)
                )
            {
                uri = uri + "/" + data ["token"];
                data.Remove("token");
            }

            if (method == HttpMethod.Get && data.Count > 0)
            {
                uri = uri + "?" + getQueryString(data);
            }

            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);

            request.Method        = method.ToString();
            request.ContentLength = 0;
            request.UserAgent     = "EveryPay .NET Library " + Everypay.getVersion();
            string authorization       = Everypay.apiKey + ":";
            string authorizationHeader = "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(authorization));

            request.Headers ["Authorization"] = authorizationHeader;

            if (method == HttpMethod.Post || method == HttpMethod.Put)
            {
                string postData = getQueryString(data);
                request.ContentType   = "application/x-www-form-urlencoded";
                request.ContentLength = postData.Length;

                StreamWriter s = new StreamWriter(request.GetRequestStream());
                s.Write(postData);
                s.Flush();
                s.Close();
            }

            var             responseBody = string.Empty;
            HttpWebResponse response     = null;

            try
            {
                response     = (HttpWebResponse)request.GetResponse();
                responseBody = parseResponse(response);
            } catch (WebException e) {
                response     = (HttpWebResponse)e.Response;
                responseBody = parseResponse(response);
            } finally {
                if (response.StatusCode != HttpStatusCode.OK)
                {
                    createErrorObject();
                }
            }

            return(responseBody);
        }
示例#2
0
 private string getEndpoint()
 {
     return(Everypay.getApiUrl() + "/" + getResource());
 }