使用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"];
//} }
使用HttpClient发送数据 到WebApi的更多相关文章
- Http协议以及模拟http请求发送数据
1 为什么要使用http协议 假设我现在有两个客户端浏览器,一个是google,一个是IE浏览器:我现在有两个服务器,一个是tomcat,一个是JBoss;在最初的情况下是:如果google要往tom ...
- Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Android - 向服务器发送数据(POST) - HTTPClient.
该篇文章主要说明使用Apache提供的HTTPClient,通过post方式,向服务器发送数据.由于有些东西在 Android - 向服务器发送数据(GET)中提到过,就不再重复. 一,Android ...
- (一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
(一)----使用HttpClient发送HTTP请求(通过get方法获取数据) 一.HTTP协议初探: HTTP(Hypertext Transfer Protocol)中文 “超文本传输协议”,是 ...
- (三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
文章来源:http://www.cnblogs.com/smyhvae/p/4006009.html 一.GET和POST的对比: 在漫长的时间当中,其他的方法逐渐的退出了历史舞台,最常用的只剩下GE ...
- httpclient发送不带参数post数据
两个问题: 1.httpclient怎样发送一个没有不论什么參数的post数据呢? 2.Webproject怎样去接收一个无參数的post呢? 起因: 今天(2014.1 ...
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
讲这个之前,我们先来说说get和post两种请求的区别吧!!! 1. GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.jsp?name=te ...
- Android之网络----使用HttpClient发送HTTP请求(通过get方法获取数据)
[正文] 一.HTTP协议初探: HTTP(Hypertext Transfer Protocol)中文 "超文本传输协议",是一种为分布式,合作式,多媒体信息系统服务,面向应用层 ...
随机推荐
- winform把图片存储到数据库
1.先在Form中放一个PictureBox控件,再放三个按钮. 2.双击打开按钮,在里面写如下代码: OpenFileDialog open1 = new OpenFileDialog(); Dia ...
- 运行在VMware上的Linux虚拟机如何使用NAT模式连接物理机的外部网络
在VMware Workstation中,默认有3个虚拟交换机,分别是VMnet0(使用桥接网络).VMnet1(仅主机网络)和VMnet8(NAT网络). 首先说一下为什么要用NAT模式,如果你的物 ...
- Maven学习 (四) 使用Nexus搭建Maven私服
为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到 ...
- python操作Excel读写--使用xlrd和xlwt
一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境. 进入到解压文件路径,输入 setup.py ...
- Portable Operating System Interface for uni-X
https://kb.iu.edu/d/agjv Short for "Portable Operating System Interface for uni-X", POSIX ...
- [daily][troubleshoot][archlinux][wps][font] wps文档中的图内容无法显示中文
序 用linux作为工作生产环境的几个需要解决的问题之一是:文档协作,即如何兼容Micro$oft Office格式的文档. 我一般的工作方式是:在linux下创建一个win7的虚拟机,安装常用的wi ...
- 如何获取网页上的LOGO
一般公司网页上的图片都会禁止右键另存为,用截图工具接下来的图会带背景色,PS成背景透明有点费时间. 用Google Chrome 或Firefox 打开目标网页,右键点击审查元素,将鼠标放在图片上,一 ...
- LeetCode Smallest Rectangle Enclosing Black Pixels
原题链接在这里:https://leetcode.com/problems/smallest-rectangle-enclosing-black-pixels/ 题目: An image is rep ...
- LeetCode Maximum Size Subarray Sum Equals k
原题链接在这里:https://leetcode.com/problems/maximum-size-subarray-sum-equals-k/ 题目: Given an array nums an ...
- centos7 yum安装mysql5.7并在root密码忘记的情况下重设密码
CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1. 下载mysql的repo源 1 $ wget http://repo.mysql ...