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); }
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); }
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); }
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); }
/// <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); }