包含content-typeapplication/json的词条

本篇文章给大家谈谈content-typeapplication/json,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Content-Type 详解

Content-Type(MediaType),即是Internet Media Type,互联网媒体类型,也叫做MIME类型。在互联网中有成百上千中不同的数据类型,HTTP在传输数据对象时会为他们打上称为MIME的数据格式标签,用于区分数据类型。最初MIME是用于电子邮件系统的,后来HTTP也采用了这一方案。

在HTTP协议消息头中,使用Content-Type来表示请求和响应中的媒体类型信息。它用来告诉服务端如何处理请求的数据,以及告诉客户端(一般是浏览器)如何解析响应的数据,比如显示图片,解析并展示html等等。

Content-Type:type/subtype ;parameter

例如:

Content-Type: text/html;

Content-Type: application/json;charset:utf-8;

常见的Content-Type有数百个,下面例举了一些

上面的Content-Type,我们只认得就好,但是下面有4种是需要我们清楚运慧他们的区别及牢记在心的。

HTTP会将请求参数用key1=val1key2=val2的方式进行组织,并放到请求实体里面,注意如果是中文或特殊字符如"/"、","、“:" 等会自动进行URL转码。不支持文件,一般用于表单提交。

下面是一个例子:

与application/x-www-form-urlencoded不同,这是一个多部分多媒体类型。首先生成了一个 boundary 用于分割不同的字段,在请求实体里每个参数以------boundary开始,然后是附加信息和参数名,然后是空行,最后是参数内容。多个参数将会有多个boundary块。如果参数是文件会有特别的文件域。最后以------boundary–为结束标识。multipart/form-data支持文件上传的格式,一般需要上传文件的表单则用该类型。

下面是一个例基尘子:

JSON 是一种轻量级的数据格式,以“键-值”对的方式组织的数据。这个使用这个类型,需要参数本身就是json格式的数据,参数会被直接放到请求实体里,不进行任何处理。服务端/客户端会按json格式解析数据(约定好的情况下)。

与application/json类似,这里用的是xml格式的数据,text/xml的话,将忽略xml数据里的编码格式, 参考 。

一般我们在开发的过程中需要注意客户端发送请求(Request)时的Content-Type设置,特别是使用ajax的时候,如果设置得不准确,很有可能导致请求失败。比如在spring中,如果接口使用了@RequestBody,spring强大的自动解析功能,会将请求实体的内容自动转换为Bean,但前提是请求的Content-Type必须设置为application/json,否正就会返回415错误。

注:415 错误是 Unsupported media type,即不支持的媒体类型。

建议:

服务端响应(Response)的Content-Type最好也保持准确,虽然一般web开发中,前搏悄禅端解析响应的数据不会根据Content-Type,并且服务端一般能自动设置准确的Content-Type,但是如果乱设置某些情况下可能会有问题,比如导出文件,打开图片等。如果在spring项目里使用@ResponseBody,spring会将响应的Content-Type设置为application/json;charset=UTF-8;,可能会导致文件无法导出,需要注意下。

response的Content-Type设置建议:

下面的一个设置response的Content-Type的例子:

参考

《HTTP 权威指南》

什么是json

常见的Content-Type

application/xml 和 text/xml的区别

postman里的Content-Type

content-type application/json 请求 服务端怎么获取请求数据?

在Android/java平台上实现POST一个json数据:

JSONObject jsonObj = new JSONObject();

jsonObj.put("username", username);

jsonObj.put("apikey", apikey);

// Create the POST object and add the parameters

HttpPost httpPost = new HttpPost(url);

StringEntity entity = new StringEntity(jsonObj.toString(), HTTP.UTF_8);

entity.setContentType("application/json");

httpPost.setEntity(entity);

HttpClient client = new DefaultHttpClient();

HttpResponse response = client.execute(httpPost);

用curl可执行如下命令:

curl -l -H "Content-type: application/json" -X POST -d '{"phone":"13521389587","password"岁陪梁:"test"}'

用jQuery:

$.ajax({

url:url,

type:"POST",

data:data,

contentType:"application/json; charset=utf-8",

dataType:"json",

success: function(){

...

}

})

服务端(Server)是为客户端服务的,服务的内容诸如向客户端提供资源,保存客户端数据。一般大型的服务端都是乱扒在linux环境下搭建。

服务端不具备运乎运算能力,因为服务端同时会与多个客户端建立连接,一旦服务端进行运算的话,就会占用大量的资源,从而影响到其他客户端的通信。

服务端是一种有针对性的服务程序。它的主要表现形式以“windows窗口程序”与“控制台”为主。一般大型的服务端都是在linux环境下搭建。运行服务端的电脑称之为“服务器”。

[img]

接收 Content-type: application/json 的数据

工作中会遇到 请求头是 Content-type: application/json 的请求,比如微信开发里面,或者把宽正请求体序列化为json传过来等情况。

微信氏巧举的文档说用 $GLOBALS ["HTTP_RAW_POST_DATA"] 来接收数据,对于歼碧老版本的PHP是可行的。

到新版本的PHP 好像弃用了,改用 file_get_contents('php://input') 来接受数据。用法和 $_POST 一样,

Restclient 设置了Content-type="Application/json"之后读取到的数据是xml

你需要将返回的字符串序列化为JSON对象才可以,也就是返回一个object类型而不是string类型,网上把字符岩搏串转为粗闹祥JSON对象的类弯清也有很多

关于content-typeapplication/json和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表