public void TestNullResponse()
        {
            APIResponseFactory responseFactory = APIResponseFactory.GetInstance();
            HttpWebResponse    response        = (HttpWebResponse)null;
            IAPIResponse       ApiResponse     = responseFactory.PackageAPIResponse(response);

            Assert.IsNotNull(ApiResponse);
            Assert.IsTrue(ApiResponse.Status.GetStatus() == ResponseStatus.Status.CriticallyInvalid);
        }
        public void TestInvalidResponse()
        {
            APIResponseFactory responseFactory = APIResponseFactory.GetInstance();
            WebRequest         request         = WebRequest.Create("http://stackoverflow.com");
            HttpWebResponse    response        = (HttpWebResponse)request.GetResponse();
            IAPIResponse       ApiResponse     = responseFactory.PackageAPIResponse(response);

            Assert.IsNotNull(ApiResponse);
            Assert.IsTrue(ApiResponse.Status.GetStatus() == ResponseStatus.Status.Unknown);
        }
Example #3
0
        public void DeserializeResponse_HandlesJson()
        {
            var serializer = new NewtonsoftJSONSerializer();
            var response   = new Mock <IResponse>();

            response.SetupGet(r => r.Body).Returns("{\"hello_world\": false}");
            response.SetupGet(r => r.ContentType).Returns("application/json");

            IAPIResponse <TestResponseObject> apiResonse = serializer.DeserializeResponse <TestResponseObject>(response.Object);

            Assert.AreEqual(apiResonse.Body?.HelloWorld, false);
            Assert.AreEqual(apiResonse.Response, response.Object);
        }
Example #4
0
        public void DeserializeResponse_SkipsNonJson()
        {
            var serializer = new NewtonsoftJSONSerializer();
            var response   = new Mock <IResponse>();

            response.SetupGet(r => r.Body).Returns("hello");
            response.SetupGet(r => r.ContentType).Returns("media/mp4");

            IAPIResponse <object> apiResonse = serializer.DeserializeResponse <object>(response.Object);

            Assert.AreEqual(apiResonse.Body, null);
            Assert.AreEqual(apiResonse.Response, response.Object);
        }
Example #5
0
        public async Task <T> SendAPIRequest <T>(
            Uri uri,
            HttpMethod method,
            IDictionary <string, string>?parameters = null,
            object?body = null,
            IDictionary <string, string>?headers = null
            )
        {
            var request = CreateRequest(uri, method, parameters, body, headers);
            IAPIResponse <T> apiResponse = await DoSerializedRequest <T>(request).ConfigureAwait(false);

            return(apiResponse.Body);
        }
Example #6
0
        /// <summary>
        /// 传入待翻译文本,返回翻译内容
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        public async Task <IAPIResponse> Translate(string text)
        {
            var request = new ApiRequest()
            {
                ContentType = CONTENT_TYPE,
                Charset     = CHARSET,
                Method      = METHOD,
                TKK         = _settings.TKK,
                Url         = _settings.TranslateUrl,
                APPID       = _settings.APPID,
                KEY         = _settings.KEY,
                Body        = Encoding.UTF8.GetBytes(text), //待翻译文本
                Headers     = new Dictionary <string, string>()
            };

            request.Headers.Add("from-language", _settings.AutoDetect ? "auto" : _settings.TranslateFrom);
            request.Headers.Add("to-language", _settings.TranslateTo);
            IAPIResponse aPIResponse = await ExecuteAsync(request);

            // request.Headers.Add("auto-detect-language", _settings.AutoDetect.ToString());
            return(aPIResponse);
        }