zoukankan      html  css  js  c++  java
  • 使用HttpClient发送数据 到WebApi

    发送和JSON数据

    /=============================webAPI接受POST的JOSN数据=============================/
     POST api/<controller>
    [HttpPost]
    public string Post([FromBody]string value)
    {
        var requestContent = value;
        var result = "[{"name":"12"}]";
        return result;
    }
    
    
    // 发送方法
    public void SendStringToWebApi()
    {
    	
    	#region 调用API发送字典数据
    
                // (orders+vehicles+appkey+timestamp+version+appsecret)
                var timestamp = DateTime.Now.ToString("yyyyMMddHHmmssSSS");
                var sign = DigitalSignature.MD5(JsonConvert.SerializeObject(listOrder) + appkey + timestamp + "1" + appsecret);
                var qid = timestamp + sign;
    
                var url = "http://www.routeapi.com/api/Order";
                var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
    
                using (var http = new HttpClient(handler))
                {
                    // 发送的JSON数据
                    var _TrasnTask = new TrasnTask()
                    {
                        Orders = listOrder,
                        appkey = appkey,
                        timestamp = timestamp,
                        version = "1",
                        sign = sign
                    };
                    var postJsonContent = JsonConvert.SerializeObject(_TrasnTask);
    
                    http.DefaultRequestHeaders.Accept.Clear();
    
                    // 指定提交的数据格式
                    // http.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    // HttpResponseMessage response;
                    // var action = Uri.EscapeUriString(url);
    
                    //Obj is passed into this, currently it is of type File 
                    // var content = new StringContent(postJsonContent, Encoding.UTF8, "application/json");
    
                    // response = http.PostAsync(action, content).Result;
                    response = http.PostAsJsonAsync<string>(url, postJsonContent).Result;
                    if (response.IsSuccessStatusCode)
                    {
                        var responseContent = response.Content;
                        string responseString = responseContent.ReadAsStringAsync().Result;
                        TempData["responseLocation"] = responseString;
                    }
                }
    
    }
    

    发送字段数据

    public void SendDicToWebApi()
    {
         //// (orders+vehicles+appkey+timestamp+version+appsecret)
                //var timestamp = DateTime.Now.ToString("yyyyMMddHHmmssSSS");
                //var sign = DigitalSignature.MD5(JsonConvert.SerializeObject(listOrder) + appkey + timestamp + "1" + appsecret);
                //var qid = timestamp + sign;
    
                //var url = "http://www.routeapi.com/api/Order/PostToDic";
                //var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
    
                //using (var http = new HttpClient(handler))
                //{
                //    var formDic = new Dictionary<string, string>()
                //    {
                //        {"orders",JsonConvert.SerializeObject(listOrder)},
                //        {"vehicles","vehiclesVlaues"},
                //        {"appkey",appkey},
                //        {"timestamp",timestamp},
                //        {"version","1"},
                //        {"sign",sign}
                //    };
    
                //    var content = new FormUrlEncodedContent(formDic);
    
                //    // 发送字典集合
                //    var response = http.PostAsync(url, content).Result; 
    
                //    // 接受返回值
                //    var httpStatusCode = response.IsSuccessStatusCode;
                //    var responseLocation = response.Headers.Location;
                //    TempData["responseLocation"] = response.Content.ToString();
    
                //}
    
    
    
    ///// <summary>
            ///// 接受普通文本
            ///// </summary>
            ///// <param name="value"></param>
            ///// <returns></returns>
            //[HttpPost]
            //// public string Post([FromBody]string value)
            //public string PostToDic(FormDataCollection value)
            //{
            //    var orders_1 = value.GetValues("orders");
            //    return "文本已经接受到了";
    
            //    ///// 接受地址栏的参数
            //    //var requestUri = Request.RequestUri.ParseQueryString();
            //    //var orders = requestUri["orders"];
            //    //var vehicles = requestUri["vehicles"];
            //    //var appkey = requestUri["appkey"];
            //    //var timestamp = requestUri["timestamp"];
            //    //var version = requestUri["version"];
            //    //var sign = requestUri["sign"];
            //}
    
    }
    
    搏击长空
  • 相关阅读:
    JVM,反射与动态代理
    11款实用的一句话网站设计代码
    Winform TextBox中只能输入数字的几种常用方法(C#)
    列表checkbox全选
    函数调用约定
    vs编译后在本机能运行,在别的机器上运行提示runtime Error的问题
    学习地形编程(一)
    Ogre中动态三维鼠标的实现
    讲讲volatile的作用
    绕任意轴旋转的推导
  • 原文地址:https://www.cnblogs.com/yitong/p/5811476.html
Copyright © 2011-2022 走看看