怎么判断http请求参数是表单还是json
题主想问的应该是如何判断一个http请求它的数据传输方式是表单形式还是json形式。比如我们看悟空问答的页面其中一个请求:看它的content-type:application/json,很明显这是一个json格式的请求。实际上现在大多数的API数据传输都是采用json形式的。
Content-Type
在http协议请求头中,用Content-Type代表具体请求中的媒体类型信息。例如上图中的“content-type:application/json”。
常见的媒体类型有如下几种:
text/html:HTML格式
text/plain:纯文本格式
text/xml:XML格式
image/gif:gif图片格式
image/jpeg:jpg图片格式
image/png:png图片格式
application开头的媒体类型有:
application/xhtml+xml:XHTML格式
application/xml:XML数据格式
application/atom+xml:Atom XML聚合格式
application/json:json数据格式
application/pdf:pdf格式
application/msword:Word文档格式
application/octet-stream:二进制流数据格式(文件下载)
application/x-www-form-urlencoded:表单提交方式
multipart/form-data:文件上传数据格式
我们日常比较常用的就是application/json、application/x-www-form-urlencoded、multipart/form-data三种数据格式进行http请求。
如何区分?
浏览器开发者工具下直接可以查看请求的媒体>范例/p>
开发中,比如Java语言下采用SpringMVC框架开发,在HttpServletRequest对象中,request.getHeader("content-type")即可输出请求的媒体类型,可以根据不同的请求类型采取对应的方式解析数据。
PHP调用接口用post方法传送json数据的实例
$c = file_get_contents('php://input'); .//解析获取的二进制流 获取的数据格式是json的$j = json_decode($c, true)
; //解析json数据,加第二个参数true 是数组 不然是对象安卓的也可以POST获取 get就不用说了 都可以
js中怎么样获取从form提交后返回的json数据
同页面下的话就需要做异步处理,后台return json格式数据 $.ajax({ url:"后台地址的url", data:{ id:id }, type:"POST", success:function(re){ console.log(re);//打印返回数据 } });