常见数据格式

  • application/x-www-form-urlencoded

    这也是最常见的 POST 提交数据的方式,一般是用来提交表单。

  • multipart/form-data

    上传文件时通常采用的数据格式

  • application/json

    API接收和返回的常见格式

  • text/xml

    可能还有一些数据交换的场景采用的格式

关于 HttpContent

HttpContent 是一个抽象类

public abstract class HttpContent: IDisposable
{
protected HttpContent();
public HttpContentHeaders Headers
{
get;
}
public Task CopyToAsync(Stream stream, TransportContext context);
public Task CopyToAsync(Stream stream);
public void Dispose();
public Task LoadIntoBufferAsync();
public Task LoadIntoBufferAsync(long maxBufferSize);
public Task < byte[] > ReadAsByteArrayAsync();
public Task < Stream > ReadAsStreamAsync();
public Task < string > ReadAsStringAsync();
protected virtual Task < Stream > CreateContentReadStreamAsync();
protected virtual void Dispose(bool disposing);
protected abstract Task SerializeToStreamAsync(Stream stream, TransportContext context);
protected internal abstract bool TryComputeLength(out long length);
}

那我们就不可能直接创建HttpContent的实例, 而需要去找他的实现类, 如下四个:

MultipartFormDataContent、FormUrlEncodedContent、StringContent、StreamContent

和4中常见数据格式对应一下:

MultipartFormDataContent =》 multipart/form-data

FormUrlEncodedContent =》 application/x-www-form-urlencoded

StringContent =》 application/json等

StreamContent =》 binary

HttpClient 提交Json 数据

在谈如何处理JSON前,插入一个form表单提交的示例代码

//请求Body
var body = new Dictionary <string,string> ()
{
{
"from", "sender"
},
{
"to", "receiver"
}
};
HttpContent content = new FormUrlEncodedContent(body);
var response = client.PostAsync(apiAddress, content).Result;

这里也考虑仿照表单提交的情况,有个特殊格式的HttpContent 继承类,接收一个对象变量

json本质上还是一种特殊的字符串格式,我们可以 在StringContent的基础上创建一个子类,接收对象变量,转换成字符串,增加application/json 的表头信息

创建一个新的类

public class JsonContent : StringContent
{
public JsonContent(object obj) :
base(JsonConvert.SerializeObject(obj), Encoding.UTF8, "application/json")
{ }
}

HttpClient 提交 JSON数据的更多相关文章

  1. ngResource提交json数据如何带参数

    ngResource提交json数据如何带参数 直接使用ngResource和REST服务接口交互可以让程序显得简洁,前提是配置好跨域和OPTIONS请求的支持,与此同时,如果需要带些额外的参数,有两 ...

  2. Jquery Ajax 提交json数据

    在MVC控制器(这里是TestController)下有一个CreateOrder的Action方法 [HttpPost] public ActionResult CreateOrder(List&l ...

  3. Jquery-ajax()方法提交json数据

    1.ajax()提交json数据代码 var strJson = getStrPayJson(); $.ajax({ type: "POST", url: "/userc ...

  4. ajax提交json数据到后端C#解析

    本文链接:https://blog.csdn.net/qq_22103321/article/details/78015920 前端提交json数据 $.ajax({ type: "post ...

  5. 前端ajax用post方式提交json数据给后端时,网络报错 415

    项目框架:spring+springmvc+mybatis 问题描述:前端ajax用post方式提交json数据给后端时,网络报错 415 前端异常信息:Failed to load resource ...

  6. 导出excel时,以form方式提交json数据

    今天在写项目时写到一个excel的导出,开始想用ajax请求后台后导出,但发现ajax会有返回值,而且ajax无法直接输出文件,而后台的excel导出方法已经封装好,不方便修改. 就改用了提交的方式f ...

  7. jQuery提交Json数据到Webservice,并接收返回的Json数据

    jQuery ajax webservice:get 和 post 一.GET 方式 客户端 复制代码 代码如下: var data = { classCode: "0001"}; ...

  8. 关于ajax 进行post提交 json数据到controller

    首选需要参考的两个博客: www.cnblogs.com/Benjamin/archive/2013/09/11/3314576.html http://www.cnblogs.com/quanyon ...

  9. HttpClient发送Json数据到指定接口

    项目中遇到将Json数据发送到指定接口,于是结合网上利用HttpClient进行发送. /** * post发送json数据 * @param url * @param param * @return ...

  10. iOS通过ASIHTTPRequest提交JSON数据

    先验知识——什么是ASIHTTPRequest? 使用iOS SDK中的HTTP网络请求API,相当的复杂,调用很繁琐,ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且 ...

随机推荐

  1. [0x11] 130.火车进站问题【卡特兰数】

    题意 link(more:129.,P1044) 简化题意:给定严格从 \(1\thicksim n\) 这 \(n(n\leqslant 6\times10^4)\) 个整数,规定每个数都要进出栈各 ...

  2. [OpenCV实战]43 使用OpenCV进行背景分割

    运动背景分割法Background Segment主要是指通过不同方法拟合模型建立背景图像,将当前帧与背景图像进行相减比较获得运动区域.下图所示为检测图像: 通过前面的检测帧建立背景模型,获得背景图像 ...

  3. Raft一致性共识算法论文学习

    论文地址:https://pdos.csail.mit.edu/6.824/papers/raft-extended.pdf 看完raft共识算法,脑袋非常懵,所以写一篇学习笔记,记录一下. raft ...

  4. JS加载层

    花了些时间封装了一个JS类,内置9种图标样式,全局主要样式可自定义. 转载请附上本文链接! 全局配置 { "msg": "文字,默认: "loading...& ...

  5. Zabbix与乐维监控对比分析(八)——其他功能篇

    前面我们详细介绍了Zabbix与乐维监控的架构与性能.Agent管理.自动发现.权限管理.对象管理.告警管理.可视化.图形图表及网络功能方面的对比分析,接下来我们将对二者其他功能进行对比分析. 本篇是 ...

  6. DVWA靶场实战(九)——Weak Session IDS

    DVWA靶场实战(九) 九.Weak Session IDS: 1.漏洞原理: Weak Session IDS也叫做弱会话,当用户登录后,在服务器就会创造一个会话(session),叫做会话控制,接 ...

  7. 使用 NineData 高效编写 SQL

    SQL 是 Structured Query Language 的缩写,中文翻译为"结构化查询语言".它是关系型数据库的标准语言,所有的关系型数据库管理系统(RDBMS),比如 M ...

  8. 【总结笔记】全志平台 Linux ASOC 框架浅析

    ASOC 各部分框图示意 Platform 一般由 SOC 芯片原厂负责编写,主要涉及到 SOC 内部数字音频接口DAI(I2S)和 DMA 的寄存器配置. Codec 一般由硬件方案的驱动工程师或者 ...

  9. Backbone前端框架解读

    作者: 京东零售 陈震 一. 什么是Backbone 在前端的发展道路中,前端框架元老之一jQuery对繁琐的DOM操作进行了封装,提供了链式调用.各类选择器,屏蔽了不同浏览器写法的差异性,但是前端开 ...

  10. ChatGpt国内教程

    近ChatGPT大火呀,小伙伴们是不是在网上看到各种和ChatGPT有趣聊天的截图,比如翻译代码.编写代码,奈何自己实力不够,被网络拒之门外,只能眼馋别人的东西.看别人玩,肯定不如自己玩一把舒服的啊. ...