示例#1
0
 public async Task <Header> GetCasesFromCountry(string code)
 {
     try
     {
         if (string.IsNullOrEmpty(code))
         {
             return(null);
         }
         HttpRequestResponse response = await new HttpRequest().Get(APILinksBase.CasosMundiais.GetValue().ToString() + "/" + code);
         if (response.Success)
         {
             var cases = JsonConvert.DeserializeObject <Header>(response.HttpResult.Content.ReadAsStringAsync().Result);
             if (cases != null && cases.data != null)
             {
                 return(cases);
             }
         }
         Messages.Add(new Message(response.Exception.Message));
         return(null);
     }
     catch (Exception ex)
     {
         Messages.Add(new Message(ex.Message));
         return(null);
     }
 }
        public void Empty_PostData_Test()
        {
            MemoryStream        stream = GetRequestStream("POST / HTTP/1.1", "Host: Localhost", "Content-Length: 0", "");
            HttpRequestResponse httpRequestResponse = new HttpRequestResponse(stream, null, null);

            Assert.AreEqual(0, httpRequestResponse.Request.PostData.Length);
        }
示例#3
0
        public async Task <Boolean> Login(User user)
        {
            if (user.Username == null || user.Password == null)
            {
                return(false);
            }
            IHttpSetter httpSetter = Setter(SFResources.Connect);

            httpSetter.SetBody(user?.ToJson());
            httpSetter.SetMethod(HttpMethod.Put);
            HttpRequestResponse hrr = await RunRequestFromSetter(httpSetter);

            if (hrr.Body == "true")
            {
                String cookieName = "PHPSESSID=";
                String s          = hrr.Headers.Get("Set-Cookie");
                if (s != null)
                {
                    String sessionId = s.Substring(s.IndexOf(cookieName));
                    sessionId = sessionId.Substring(0, sessionId.IndexOf(";") + 1);

                    Headers.Add("Cookie", sessionId);
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public void IsKeepAlive_False_Test()
        {
            MemoryStream        stream = GetRequestStream("GET / HTTP/1.1", "Host: Localhost", "");
            HttpRequestResponse httpRequestResponse = new HttpRequestResponse(stream, null, null);

            Assert.IsFalse(httpRequestResponse.Request.IsKeepAlive);
        }
        public void PostData_On_Get_Test()
        {
            MemoryStream        stream = GetRequestStream("GET / HTTP/1.1", "Host: Localhost", "");
            HttpRequestResponse httpRequestResponse = new HttpRequestResponse(stream, null, null);

            Assert.AreEqual(0, httpRequestResponse.Request.PostData.Length);
        }
 public void Simple_Get_Request_Lacking_Host_Header_Test()
 {
     //This test should throw an exception as the Host header is required.
     //Ideally we would be able to better test for this, but for now all we
     //can do is test for the above generic exception.
     MemoryStream        stream = GetRequestStream("GET / HTTP/1.1", "");
     HttpRequestResponse httpRequestResponse = new HttpRequestResponse(stream, null, null);
 }
        public void HttpRequestResponse_Construction_With_Non_Timeout_Stream_Test()
        {
            Stream s = GetRequestStream("GET / HTTP/1.1", "Host: Localhost", "");

            Assert.IsFalse(s.CanTimeout);

            HttpRequestResponse httpRequestResponse = new HttpRequestResponse(s, null, null);
        }
        public void Url_Encoded_Urls_Test()
        {
            MemoryStream request = GetRequestStream("GET /virDir/A%20Path%20That%20Needs%20Encoding.aspx HTTP/1.1",
                                                    "Host: Localhost", "");
            HttpRequestResponse httpRequestResponse = new HttpRequestResponse(request, null, null);

            Assert.AreEqual("/virDir/A Path That Needs Encoding.aspx", httpRequestResponse.Request.RawUrl);
        }
        public void Simple_Get_Request_Test()
        {
            MemoryStream        stream = GetRequestStream("GET / HTTP/1.1", "Host: Localhost", "");
            HttpRequestResponse httpRequestResponse = new HttpRequestResponse(stream, null, null);

            Assert.AreEqual(httpRequestResponse.Request.HttpMethod, "GET");
            Assert.AreEqual(httpRequestResponse.Request.RawUrl, "/");
            Assert.IsFalse(httpRequestResponse.Request.IsKeepAlive);
        }
        internal HttpParserDelegate(HttpRequestResponse requestResponse)
        {
            RequestResponse = requestResponse;

            var parserStateSubject = new BehaviorSubject <ParserState>(ParserState.Start);

            _observerParserState       = parserStateSubject.AsObserver();
            ParserCompletionObservable = parserStateSubject.AsObservable();
        }
        public void NonEmpty_PostData_Test()
        {
            byte[] postedData = new byte[] { 4, 9, 123, 87, 182, 44, 250 };

            MemoryStream        stream = GetRequestStream("POST / HTTP/1.1", "Host: Localhost", "Content-Length: 7", "", Encoding.ASCII.GetString(postedData));
            HttpRequestResponse httpRequestResponse = new HttpRequestResponse(stream, null, null);

            Assert.AreEqual(postedData, httpRequestResponse.Request.PostData);
        }
示例#12
0
        public static async Task <List <PlayerClassRoute> > LoadClassesAsync()
        {
            var httpRequestResponse = new HttpRequestResponse();

            var classList = new List <PlayerClassRoute>();

            foreach (var playerClassValue in PlayerClassRoute.Contents)
            {
                var _class = GetPlayerClassAsync(playerClassValue);
                Debug.Print(_class.name);
            }
            return(classList);
        }
        public void HttpRequestResponse_Construction_With_Non_Timeout_Stream_When_Specifying_Timeout_Test()
        {
            MockRepository mocks = new MockRepository();

            Stream s = mocks.CreateMock <Stream>();

            using (mocks.Unordered()) {
                Expect.Call(s.CanTimeout).Return(false);
            }
            mocks.ReplayAll();

            HttpRequestResponse httpRequestResponse = new HttpRequestResponse(s, null, null, 400);
        }
示例#14
0
        protected async Task <HttpRequestResponse> RunRequestFromSetter(IHttpSetter hs)
        {
            HttpRequest         hr = hs.Http as HttpRequest;     //
            HttpRequestResponse rr;

            try
            {
                rr = await hr.Run() as HttpRequestResponse;                 //
            }
            catch (Exception e)
            {
                rr      = new HttpRequestResponse();
                rr.Body = "[]";
            }
            return(rr);
        }
        private static async Task <IHttpRequestResponse> ParseAsync(
            HttpRequestResponse requestResponseObj,
            CancellationToken ct,
            params ErrorCorrection[] errorCorrections)
        {
            using (var requestHandler = new HttpParserDelegate(requestResponseObj))
                using (var httpStreamParser = new HttpStreamParser(requestHandler, errorCorrections))
                {
                    var result = await httpStreamParser.ParseAsync(requestResponseObj.ResponseStream, ct);

                    if (httpStreamParser.HasParsingError)
                    {
                        ((HttpRequestResponse)result).HasParsingErrors = httpStreamParser.HasParsingError;
                    }

                    return(result);
                }
        }
示例#16
0
 public async Task <ListOfCasesCity> GetCasesTimeLineFromCity(States state, string codigoIBGE)
 {
     try
     {
         HttpRequestResponse response = await new HttpRequest().Get(APILinksBase.CasosFull.GetValue().ToString() + "?page_size=10.000&state=" + state.GetValue().ToString() + "&city_ibge_code=" + codigoIBGE);
         if (response.Success)
         {
             var cases = JsonConvert.DeserializeObject <ListOfCasesCity>(response.HttpResult.Content.ReadAsStringAsync().Result);
             if (cases != null && cases.count > 0)
             {
                 return(cases);
             }
         }
         Messages.Add(new Message(response.Exception.Message));
         return(null);
     }
     catch (Exception ex)
     {
         Messages.Add(new Message(ex.Message));
         return(null);
     }
 }
示例#17
0
 public async Task <ListOfCases> GetCasesFromWorld()
 {
     try
     {
         HttpRequestResponse response = await new HttpRequest().Get(APILinksBase.CasosMundiais.GetValue().ToString());
         if (response.Success)
         {
             var cases = JsonConvert.DeserializeObject <ListOfCases>(response.HttpResult.Content.ReadAsStringAsync().Result);
             if (cases != null && cases.data.Count > 0)
             {
                 return(cases);
             }
         }
         Messages.Add(new Message(response.Exception.Message));
         return(null);
     }
     catch (Exception ex)
     {
         Messages.Add(new Message(ex.Message));
         return(null);
     }
 }
示例#18
0
 public async Task <ListOfCases> GetTimeLineFromState(States state)
 {
     try
     {
         HttpRequestResponse response = await new HttpRequest().Get(APILinksBase.Casos.GetValue().ToString() + "?page_size=10.000&place_type=state&state=" + state.GetValue().ToString());
         if (response.Success)
         {
             var cases = JsonConvert.DeserializeObject <ListOfCases>(response.HttpResult.Content.ReadAsStringAsync().Result);
             if (cases != null && cases.count > 0)
             {
                 return(cases);
             }
         }
         Messages.Add(new Message(response.Exception.Message));
         return(null);
     }
     catch (Exception ex)
     {
         Messages.Add(new Message(ex.Message));
         return(null);
     }
 }
示例#19
0
        public async Task <T> Get <T>(Resource resource, params String[] urlSegments)
        {
            IHttpSetter hs = Setter(resource, urlSegments);

            hs.SetMethod(HttpMethod.Get);
            HttpRequestResponse rr = await RunRequestFromSetter(hs);

            T result;

            try
            {
                if (rr.Body == "")
                {
                    rr.Body = "[]";
                }
                result = JsonConvert.DeserializeObject <T>(rr.Body);
            }
            catch (Exception e)
            {
                result = default(T);
            }
            return(result);
        }