【转】提交http请求之python与curl
提交http请求之python与curl
由于Openstack是python实现wsgi的REST ful架构,在学习和调试的过程中,常常会遇到http请求的提交,于是顺手整理下python和curl命令的提交方法。
1.Python篇
在python中有过爬虫经验当然很简单,一个requests库的问题,比urllib这些好用。
import requests
url="https://www.baidu.com/s"
headers={'user-agent':"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36"}
post_data={'username':"qujun","passwd":"xixi"}
parameters={'wd':"abc"}
#提交get请求
P_get=request.get(url,params=parameters)
#提交post请求
P_post=reuests.post(url,headers=headers,data=post_data)
如果涉及到cookies的话,可以使用requests.Seesion()方法
2.shell中curl
常用参数
-A:随意指定自己这次访问所宣称的自己的浏览器信息
-b/--cookie <name=string/file> cookie字符串或文件读取位置,使用option来把上次的cookie信息追加到http request里面去。
-c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中
-d/ --data <data> HTTP POST方式传送
-F/--form <name=content> 模拟http表单提交数据
-H/--header <header> 指定请求头参数
-s/--slient 减少输出的信息,比如进度
-v/--verbose 小写的v参数,用于打印更多信息,包括发送的请求信息,这在调试脚本是特别有用。
-o/--output <file> 指定输出文件名称
--retry <num> 指定重试次数
-x/--proxy <proxyhost[:port]> 指定代理服务器地址和端口,端口默认为1080
--connect-timeout <seconds> 指定尝试连接的最大时长
-i 输出时附带上返回的HTTP-header
-g 关掉URL的通配附解析。如{}、[]这种
-X 指定请求method。如GET\POST\DELETE
#curl发送get,curl请求本身属于get,也没找到指定发送参数的参数。。
curl https://www.baidu.com/s?wd=xixi
#curl发送post,curl发送post有两个参数-d和-F
跟据man的结果,区别在于:
-d 效果相当与在HTML form填好了信息按下了submit键,他会使用
content-type “application/x-www-form-urlencoded”,按照它的使用例子,应该是普通内容post过去。
-F 模拟用户按下submit键后传输填好的form。使用Content-Type multi‐part/form-data,按照它的例子一般是在传送文件的时候使用。
curl -d "username=qujun&passwd=xixi" https://www.baidu.com
curl -F "web=@index.html;type=text/html" example.com
curl -F profile=@portrait.jpg https://example.com/upload.cgi
【转自】http://blog.bobozhu.cn/Openstack/HTTP-Python-Curl/
backup 以备查找
【转】提交http请求之python与curl的更多相关文章
- 使用libcurl提交POST请求
最近在学习libcurl,并利用它提交POST请求,可是返回的响应总是无从验证该次POST请求是否成功提交了. 1. 先看下根据firebug提交的一次成功的请求,这里以login我喜欢上的xiami ...
- php ajax提交post请求出现数组被截断情况的解决方法
一.场景 今天做保存专题商品列表的时候发现,前端明明有2300多条数据,但是实际服务端接受存入数据库才166条 二.解决过程 经过调试发现前端页面提交post请求时数据量是正确的,但到服务端只能接受到 ...
- Android 使用HttpClient方式提交POST请求
final String username = usernameEditText.getText().toString().trim(); final String password = passwr ...
- Android 使用HttpClient方式提交GET请求
public void httpClientGet(View view) { final String username = usernameEditText.getText().toString() ...
- EBS-如何查看非自己提交的请求的结果
http://www.cnblogs.com/quanweiru/p/4692071.html 如何查看非自己提交的请求的结果定位要找的请求SQL举例:SELECT req.request_id, ...
- EBS环境提交新请求默认是"单一请求"
http://blog.csdn.net/samt007/article/details/38304239 用过EBS的请求都知道,提交一个新报表都要点好几个按钮,其中一个很麻烦的就是选择提交新请求的 ...
- ajax提交post请求出现数组被截断情况的解决方法
一.场景 php post 提交数据时传的数据时数组,没有多数据进行序列化处理.发现传到服务端时,部分数据丢失,查询了资料发现php对参数个数有限制,限制在php配置文件中(max_input_var ...
- 使用Larave5.6l提交POST请求出现The page has expired due to inactivity错误
使用Larave5.6l提交POST请求出现The page has expired due to inactivity错误 一般是由于没有添加 csrf造成的 在表单下面的 第一个行 添加如下代码即 ...
- django提交post请求
在做post的时候,view.py用到了下面的方法,如果是POST的method,就通过request.POTST['XX']获得html中name为XX的值,然后将值save到数据库里 models ...
随机推荐
- HDUOJ---老人是真饿了
悼念512汶川大地震遇难同胞——老人是真饿了 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...
- Lua协程学习
按照书上码了下,但运行有问题,暂时不知道原因: function send (x) coroutine.yield(x) end function producer() return coroutin ...
- 运维自动化之Cobbler系统安装使用详解[good]
一.简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成P ...
- inotify-tools命令使用讲解
inotify-tools 是为linux下inotify文件监控工具提供的一套c的开发接口库函数,同时还提供了一系列的命令行工具,这些工具可以用来监控文件系统的事件. inotify-tools是用 ...
- Centos7-Lvs+Keepalived架构
Centos7-Lvs+Keepalived架构 LVS+Keepalived 介绍 1 . LVS LVS 是一个开源的软件,可以实现 LINUX 平台下的简单负载均衡. LVS 是 Lin ...
- HDU 1710 Binary Tree Traversals (二叉树遍历)
Binary Tree Traversals Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...
- mysqld Can’t start server : Bind on unix socket: Permission denied
启动mysql报错: mysqld Can’t start server : Bind on unix socket: Permission denied 原因: mysql.sock无法建立,权限问 ...
- python 实验环境
python 实验环境的搭建 刚开始在windows环境下尝试过komodo ,eclispse pydev,swing,spyder甚至limodou的编辑器,之后ipython,安装很多科学计算包 ...
- OPENSSL编程起步
原文链接: http://blog.csdn.net/itmes/article/details/7711076 WINDOWS平台下OPENSSL的编译和安装使用 OPENSSL是开放源代码的,可以 ...
- 如何在 Mac 上通过 Boot Camp 安装 Windows?
如何在 Mac 上通过 Boot Camp 安装 Windows? The following contents are chosen from the apple website, thanks f ...