zoukankan      html  css  js  c++  java
  • HttpClient 基本使用

    Get 请求

        private async Task<List<Demo>> GetResource(HttpClient httpClient)
            {
                var response = await httpClient.GetAsync("api/demos");
                response.EnsureSuccessStatusCode();
    
                var content = await response.Content.ReadAsStringAsync();
                var demos = JsonConvert.DeserializeObject<List<Demo>>(content);
                return demos;
            }
    

    局部使用自定义请求头

        private async Task<List<Demo>> GetResourceThroughHttpRequestMessage(HttpClient httpClient)
            {
                var request = new HttpRequestMessage(HttpMethod.Get,"api/demos");
                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
    
                var response = await httpClient.SendAsync(request);
                response.EnsureSuccessStatusCode();
    
                var content = await response.Content.ReadAsStringAsync();
                var serializer = new XmlSerializer(typeof(List<Demo>));
                var demos = (List<Demo>)serializer.Deserialize(new StringReader(content));
                return demos;
            }
    

    Post 请求

    简洁方式

        private async Task CreateResource(HttpClient httpClient)
            {
                var demoToCreate = new DemoForCreation()
                {
                    Title = "some title",
                    Description = "some description"
                };
    
                var response = await _httpClient.PostAsync(
                    "api/demos",
                    new StringContent(
                        JsonConvert.SerializeObject(demoToCreate),
                        Encoding.UTF8,
                        "application/json"));
                response.EnsureSuccessStatusCode();
    
                var content = await response.Content.ReadAsStringAsync();
                var demo = JsonConvert.DeserializeObject<Demo>(content);
            }
    

    HttpRequestMessage 方式

        private async Task CreateResource(HttpClient httpClient)
            {
                var demoToCreate = new DemoForCreation()
                {
                    Title = "some title",
                    Description = "some description"
                };
                var serializedDemoToCreate = JsonConvert.SerializeObject(demoToCreate);
    
                var request = new HttpRequestMessage(HttpMethod.Post,"api/demos");
                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
    
                request.Content = new StringContent(serializedDemoToCreate);
                request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    
                var response = await httpClient.SendAsync(request);
                response.EnsureSuccessStatusCode();
                var content = await response.Content.ReadAsStringAsync();
                var serializer = new XmlSerializer(typeof(Demo));
                var demo = (Demo)serializer.Deserialize(new StringReader(content));
            }
    
  • 相关阅读:
    关于Scala中正则表达式的几种用法
    关于Scala中的match case方法的使用
    scala——Array函数大全
    线程并发的两种方式
    org.apache.hadoop.security.AccessControlException: Permission denied: user=anonymous, access=EXECUTE——beeline 连接 hive 默认权限 anonymous用户权限不够
    hive函数大全
    hive的配置和HQL的查询优化
    Java-Web学习笔记-Java基础-反射
    BUAA OS Lab4 系统调用与fork
    设计模式(三)——结构型模式,如何搭建健壮且更好维护的系统
  • 原文地址:https://www.cnblogs.com/Saints/p/12794408.html
Copyright © 2011-2022 走看看