コード例 #1
0
ファイル: ClientBase.cs プロジェクト: jadvei/dadata-csharp
        protected T Execute <T>(IDadataRequest request)
        {
            var httpRequest = CreateHttpRequest(verb: "POST", url: baseUrl);

            httpRequest = Serialize(httpRequest, request);
            var httpResponse = (HttpWebResponse)httpRequest.GetResponse();

            return(Deserialize <T>(httpResponse));
        }
コード例 #2
0
 protected HttpWebRequest Serialize(HttpWebRequest httpRequest, IDadataRequest request)
 {
     using (var w = new StreamWriter(httpRequest.GetRequestStream())) {
         using (JsonWriter writer = new JsonTextWriter(w)) {
             this.serializer.Serialize(writer, request);
         }
     }
     return(httpRequest);
 }
コード例 #3
0
ファイル: ClientBase.cs プロジェクト: jadvei/dadata-csharp
        protected T Execute <T>(string method, string entity, IDadataRequest request)
        {
            var httpRequest = CreateHttpRequest(verb: "POST", method: method, entity: entity);

            httpRequest = Serialize(httpRequest, request);
            var httpResponse = (HttpWebResponse)httpRequest.GetResponse();

            return(Deserialize <T>(httpResponse));
        }
コード例 #4
0
        protected async Task <T> Execute <T>(IDadataRequest request)
        {
            var httpRequest = CreateHttpRequest(verb: "POST", url: baseUrl);

            httpRequest = Serialize(httpRequest, request);
            var httpResponse = (HttpWebResponse)await httpRequest.GetResponseAsync();

            return(await Deserialize <T>(httpResponse));
        }
コード例 #5
0
        protected async Task <T> Execute <T>(string method, string entity, IDadataRequest request)
        {
            var httpRequest = CreateHttpRequest(verb: "POST", method: method, entity: entity);

            httpRequest = Serialize(httpRequest, request);
            var httpResponse = await httpRequest.GetResponseAsync();

            return(await Deserialize <T>((HttpWebResponse)httpResponse));
        }
コード例 #6
0
        protected async Task <T> ExecutePost <T>(string method, string entity, IDadataRequest request)
        {
            var httpRequest = CreateHttpRequest(verb: "POST", method: method, entity: entity);

            httpRequest = SerializeRequest(httpRequest, request);
            var httpResponse = this.requestExecutor.ExecuteWithMaxReqPerSecond(httpRequest, this.maxRequestsPerSecond);

            return(await Deserialize <T>((HttpWebResponse)httpResponse));
        }
コード例 #7
0
        protected async Task <T> Execute <T>(string method, string entity, IDadataRequest request)
        {
            var url = BuildUrl(method: method, entity: entity);

            using (var httpRequest = CreateHttpRequest(verb: HttpMethod.Post, url: url))
                using (var httpContent = Serialize(httpRequest, request))
                {
                    httpRequest.Content = httpContent;
                    using (var httpResponse = await client.SendAsync(httpRequest))
                    {
                        httpResponse.EnsureSuccessStatusCode();
                        return(await Deserialize <T>(httpResponse));
                    }
                }
        }
コード例 #8
0
        protected HttpContent Serialize(HttpRequestMessage httpRequest, IDadataRequest request)
        {
            MemoryStream stream = new MemoryStream();

            using (var w = new StreamWriter(stream, encoding: new UTF8Encoding(false), bufferSize: 1024, leaveOpen: true))
                using (JsonWriter writer = new JsonTextWriter(w))
                {
                    this.serializer.Serialize(writer, request);
                    writer.Flush();
                }
            stream.Seek(0, SeekOrigin.Begin);
            var httpContent = new StreamContent(stream);

            httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            return(httpContent);
        }