HTTP传递数据的几种方法
Http请求的时候,需要传递参数给后端,一般都是key-value的形式,传递的方法有很多种
例如需要传递的数据是
dict(key1=value1,key2=value2)
1. URL参数
把参数放在URL中,适用于所有的HTTP请求Method,例如GET,POST
例如:
http://www.baidu.com?key1=value1&key2=value2;
对应requests模块的params参数。例如result=requests.post(url,params=data)
Flask框架中,通过form或者values获取请求数据,例如request.args.get('key1')
2. Form-data
也就是通过HTML的FORM标签,传递数据给后端的方法
整个HTTP请求内容是这样的:
POST /test?url_key=value1 HTTP/1.1
Host: 192.168.137.130
Cache-Control: no-cache
----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="key1"
value1
----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="key2"
value2
----WebKitFormBoundaryE19zNvXGzXaLvS5C
把参数放在请求体中,使用--webkit这些协议包裹。由于需要用到请求体,所以不支持GET Method。
Flask框架中,通过form或者values获取请求数据,例如request.form.get('key1')
3. x-www-form-urlencoded
跟form-data类似,也是把传递的数据放在请求体,不过请求体的形式相对简单,跟URL参数的形式一样。
即把传递数据转换为URL参数的形式,然后放在请求体中,而不是请求的URL中。
同时需要加入请求头:
Content-Type: application/x-www-form-urlencoded
整个请求内容
POST /test?url_key=value1 HTTP/1.1
Host: 192.168.137.130
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded
key1=value1&key2=value2
对应requests的data参数。例如result=requests.post(url,data=data)
Flask框架中,通过form或者values获取请求数据,例如request.form.get('key1')
4. JSON
请求体放JSON格式的传递数据
设置请求头:
Content-Type: application/json
整个请求内容
POST /test?url_key=value1 HTTP/1.1
Host: 192.168.137.130
Content-Type: application/json
Cache-Control: no-cache
{"key2": "value2", "key1": "value1"}
对应requests模块的json参数。例如result=requests.post(url,json=data)
Flask框架中,通过json获取请求数据,例如request.json.get('key1')
其他
- 通过Google的拓展程序POSTMAN,可以模拟发送HTTP请求
- requests查看请求头和请求体:
url='http://192.168.137.130/test'
data=dict(key1='value1',key2='value2')
result=requests.post(url,json=data)
print result.request.headers
print result.request.body
博文为作者原创,未经允许,禁止转载。
HTTP传递数据的几种方法的更多相关文章
- 5.MVC框架开发(强类型开发,控制器向界面传递数据的几种方法)
界面表单中的表单元素名字和数据库表的字段名相一一映射(需要哪个表的数据就是那个表的模型(Model)) 在View页面中可以指定页面从属于哪个模型 注:以上的关系可以通过MVC的强类型视图开发来解决我 ...
- react在router中传递数据的2种方法
概述 不传递数据叫什么单页面应用,渲染模块还需要http请求算什么单页面应用. 本文总结了react-router4中使用BrowserRouter时传递数据的两种方法,供以后开发参考,相信对其他人也 ...
- Java多线程初学者指南(7):向线程传递数据的三种方法
在传统的同步开发模式下,当我们调用一个函数时,通过这个函数的参数将数据传入,并通过这个函数的返回值来返回最终的计算结果.但在多线程的异步开发模式下,数据的传递和返回和同步开发模式有很大的区别.由于线程 ...
- 译:什么是ViewData的, ViewBag和TempData? - MVC为当前和后续请求之间传递数据的三种方法
译文出处:http://www.codeproject.com/Articles/476967/WhatplusisplusViewData-cplusViewBagplusandplusTem AS ...
- Java多线程初学者指南(8):从线程返回数据的两种方法
从线程中返回数据和向线程传递数据类似.也可以通过类成员以及回调函数来返回数据.但类成员在返回数据和传递数据时有一些区别,下面让我们来看看它们区别在哪. 一.通过类变量和方法返回数据 使用这种方法返回数 ...
- .NET MVC控制器向视图传递数据的四种方式
.NET MVC控制器向视图传递数据的四种方式: 1.ViewBag ViewBag.Mvc="mvc"; 2.ViewData ViewBag["Mvc"] ...
- Angular 向组件传递模板的几种方法
最近在写一个日期选择器组件,为了满足将来可能出现的各种需求,所以需要能够高度的自定义组件的样式.为了达到这个目的,需要能够在日期选择器组件外控制每个日期格子内要显示的内容,比如,标上节假日之类的.这时 ...
- react之传递数据的几种方式props传值、路由传值、状态提升、redux、context
react之传递数据的几种方式 1.父子传值 父传值:<子的标签 value={'aaa'} index={'bbb'}></子的标签> 子接值:<li key={thi ...
- EF5+MVC4系列(7) 后台SelectListItem传值给前台显示Select下拉框;后台Action接收浏览器传值的4种方式; 后台Action向前台View视图传递数据的四种方式(ViewDate,TempDate,ViewBag,Model (实际是ViewDate.Model传值))
一:后台使用SelectListItem 传值给前台显示Select下拉框 我们先来看数据库的订单表,里面有3条订单,他们的用户id对应了 UserInfo用户表的数据,现在我们要做的是添加一个Ord ...
随机推荐
- 【阿里云产品公测】开放搜索服务 opensearch java jdk 应用体验之 机器人聊天
作者:阿里云用户啊里新人 需求:基本实现智能聊天! 最近在开发一款机器人,希望实现基本的聊天功能,词库是有的,但是如果是做完全匹配这个出来的效果很悲催, 比如词库:你好,回答是:哈哈,很好啊. 如 ...
- 教您如何检查oracle死锁,决解死锁
oracle死锁问题一直困扰着我们,下面就教您一个oracle死锁的检查方法,如果您之前遇到过oracle死锁方面的问题,不妨一看…… oracle死锁问题一直困扰着我们,下面就教您一个oracle死 ...
- codeforces 613B B. Skills(枚举+二分+贪心)
题目链接: B. Skills time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- sass中出现的中文问题
在这园子里看到了很多优秀的资源,自己也想写写东西,就突然想到了以前遇到写sass的时候出现中文乱码的解决方案.所有就自己又总结了一下.(以下测试步骤都是自己完成的!没有任何转载,如有错误,希望大家指正 ...
- javaShop的一些总结
主要参考 pdf 找到对应的文件吧,具体怎么制作一个挂件 还没有理解里面的思路,就没有研究了,改一个商城项目遇到了,也只有慢慢解决 加油! CSDN下载地址:http://download.csdn. ...
- Bootstrap基础学习-1
Bootstrap是一个基于栅格结构的前端结构框架(当然也有JS,JQuery),它的优点是内容框架能够迅速搭建起来,基于媒介查询可以使搭建的页面迅速的适应不同的用户端,无论是手机,平板,还是PC,基 ...
- CSS3 照片墙
HTML <body> <h2>照片墙制作</h2> <div class="container"> <img class=& ...
- EL函数
EL表达式语法允许开发人员开发自定义函数,以调用Java类的方法. •示例:${prefix:method(params)} •在EL表达式中调用的只能是Java类的静态方法. •这个Java类的静态 ...
- Joson的简单用法
Josn实体类如下: public class Result { public int StatusCode { get; set; } public string Message { get; se ...
- CSS之transition(动画)
Transform字面上就是变形,改变的意思.在CSS中transform主要包括以下几种:旋转rotate.扭曲skew.缩放scale和移动translate以及矩阵变形matrix. 下面我们一 ...