Esempio n. 1
0
        public HttpContent GetContent(string url)
        {
            if (this.Authenticate())
            {
                var entry  = new YotpoLogEntry("GET");
                var client = this.GetHttpClient(entry);
                if (client != null)
                {
                    entry.url = this.ApplyParameters(url);

                    var result = client.GetAsync(entry.url).Result;
                    if (result != null)
                    {
                        entry.code     = (int)result.StatusCode;
                        entry.response = result.Content.ReadAsStringAsync().Result;
                        this.Log_Request(entry);

                        if (result.StatusCode == System.Net.HttpStatusCode.OK)
                        {
                            return(result.Content);
                        }
                        else
                        {
                            throw new EnvelopeException(new ResponseStatus()
                            {
                                code = (int)result.StatusCode, message = result.ReasonPhrase
                            });
                        }
                    }
                }
            }
            return(null);
        }
Esempio n. 2
0
        public Models.Shared.ResponseEnvelope Get(string url)
        {
            if (this.Authenticate())
            {
                var entry  = new YotpoLogEntry("GET");
                var client = this.GetHttpClient(entry);
                if (client != null)
                {
                    entry.url = this.ApplyParameters(url);

                    var result = client.GetAsync(entry.url).Result;
                    if (result != null)
                    {
                        entry.code     = (int)result.StatusCode;
                        entry.response = result.Content.ReadAsStringAsync().Result;
                        this.Log_Request(entry);

                        var envelope = ResponseEnvelope.from(entry.response);
                        if (envelope.status.code == 200)
                        {
                            return(envelope);
                        }
                        else
                        {
                            throw new EnvelopeException(envelope.status);
                        }
                    }
                }
            }
            return(null);
        }
Esempio n. 3
0
 private System.Net.Http.HttpClient GetHttpClient(YotpoLogEntry request)
 {
     System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
     client.BaseAddress = new Uri(url);
     client.DefaultRequestHeaders.Accept.Clear();
     client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
     request.headers.Add("Accept", "application/json");
     return(client);
 }
Esempio n. 4
0
 private void Log_Request(YotpoLogEntry value)
 {
     if (this.loghandlers != null)
     {
         foreach (var handler in this.loghandlers.Values)
         {
             try
             {
                 handler.Handle(value.method, value.headers, value.url, value.content, value.code, value.response);
             } catch (Exception ex)
             {
                 //ignore, we dont care if the handler breaks.
             }
         }
     }
 }
Esempio n. 5
0
        //this probably doesnt work - by definition the DELETE method does not support a content value...
        public ResponseEnvelope Delete(string url, object body)
        {
            if (this.Authenticate())
            {
                var entry  = new YotpoLogEntry("DELETE");
                var client = this.GetHttpClient(entry);
                if (client != null)
                {
                    if (body is iAuthorizedRequest)
                    {
                        ((iAuthorizedRequest)body).utoken = this.UToken;
                    }
                    entry.url  = this.ApplyParameters(url);
                    entry.body = ToJsonPayload(body);
                    var httpReq = new HttpRequestMessage(HttpMethod.Delete, entry.url);
                    httpReq.Content = entry.body;

                    var result = client.SendAsync(httpReq).Result;
                    if (result != null)
                    {
                        entry.code     = (int)result.StatusCode;
                        entry.response = result.Content.ReadAsStringAsync().Result;
                        this.Log_Request(entry);

                        var envelope = ResponseEnvelope.from(entry.response);
                        if (envelope.status.code == 200)
                        {
                            return(envelope);
                        }
                        else
                        {
                            throw new EnvelopeException(envelope.status);
                        }
                    }
                }
            }
            return(null);
        }
Esempio n. 6
0
        public Models.Shared.ResponseEnvelope Post(string url, object body)
        {
            if (this.Authenticate())
            {
                var entry  = new YotpoLogEntry("POST");
                var client = this.GetHttpClient(entry);
                if (client != null)
                {
                    if (body is iAuthorizedRequest)
                    {
                        ((iAuthorizedRequest)body).utoken = this.UToken;
                    }
                    entry.url  = this.ApplyParameters(url);
                    entry.body = ToJsonPayload(body);
                    var result = client.PostAsync(entry.url, entry.body).Result;
                    if (result != null)
                    {
                        entry.code     = (int)result.StatusCode;
                        entry.response = result.Content.ReadAsStringAsync().Result;
                        this.Log_Request(entry);

                        var envelope = ResponseEnvelope.from(entry.response);
                        if (envelope.status.code == 200)
                        {
                            return(envelope);
                        }
                        else
                        {
                            throw new EnvelopeException(envelope.status);
                        }
                    }
                    else
                    {
                    }
                }
            }
            return(null);
        }