使用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"];
        //}

}
时间: 2024-08-03 19:53:37

使用HttpClient发送数据 到WebApi的相关文章

httpclient发送无参数的post数据

两个问题: 1.httpclient如何发送一个没有任何参数的post数据呢? 2.Web工程如何去接收一个无参数的post呢? 起因: 今天(2014.11.10)在开发中碰到了一个问题,接口提供方提供的接口是要求使用post方式发送数据的,心想这不超简单的一个东西吗?直接post过去不就是了,但是,提供的接口是没有任何参数的,不是类似这种http://api.dutycode.com/data/parm=xxx这种接口,而是http://api.dutycode.com/data.这个地址直

Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4006009.html 联系方式:[email protected] [系列]Android系列之网络:(持续更新) Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据) Android系列之网络(二)----HTTP请求头与响应头 Android

用HttpPost 和 HttpClient 发送请求到web 端回调数据

btnok.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 跳转到新的页面 String name=usernameTextId.getText().toString(); String pwd=passwordTextId.getText().toString(); String url = "http://112.124.12.46/wxtest/login.soap?

httpclient发送不带参数post数据

两个问题: 1.httpclient怎样发送一个没有不论什么參数的post数据呢? 2.Webproject怎样去接收一个无參数的post呢? 起因: 今天(2014.11.10)在开发中碰到了一个问题.接口提供方提供的接口是要求使用post方式发送数据的.心想这不超简单的一个东西吗?直接post过去不就是了.可是,提供的接口是没有不论什么參数的.不是类似这样的http://api.dutycode.com/data/parm=xxx这样的接口,而是http://api.dutycode.com

.Net core webapi使用httpClient发送异步请求遇到TaskCanceledException: A task was canceled

前言:本人最近较多使用.net core的项目,最近在使用httpClient发送请求的时候,遇到服务器处理时间较长时,就老是会报异常:TaskCanceledException: A task was canceled.   我的使用异步请求的方法也较为老套,使用的Task a=()=>{};   a.Wait();  来等待异步操作的结束,这种方式执行等待时,就常会出现上面的异常信息,在.net Core中httpClient添加配置超时时长也没用: services.AddHttpClie

HttpClient发送get,post接口请求

HttpClient发送get post接口请求 /** * post * @param url POST地址 * @param data POST数据NameValuePair[] * @return 响应的参数 */ public static String post(String url,NameValuePair[] data){---------------get里面没有data只有url String response = ""; HttpClient httpClient

android使用apache httpclient发送post请求

package com.liuc; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.ht

网络相关系列之三:通过GET和POST方法发送数据

写在最前面:年少的安逸舒适在随着年龄的到来和现实生活的压迫总有一天会全数归还(其实就是<无间道>中那句:"出来混,迟早要还的!") so fighting! 一.GET和POST的对比: 在漫长的时间当中,其他的方法逐渐的退出了历史舞台,最常用的只剩下GET和POST方法.而之前已经讲过了通过GET方法获取数据,今天来学习一下如何分别通过GET和POST获取数据. 举个例子:get类似于明信片,只有请求头,没有请求体.而post类似于一封信,信封上的内容为请求头:信里面的内

android 通过post发送数据 完成客户端登陆模块

1.get是从服务器上获取数据,post是向服务器传送数据.2.get是把参数数据队列加到提交表单的 ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址.用户看不到这个过程.3.对于get方式,服务器端用 Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据.4.get