提交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的更多相关文章

  1. 使用libcurl提交POST请求

    最近在学习libcurl,并利用它提交POST请求,可是返回的响应总是无从验证该次POST请求是否成功提交了. 1. 先看下根据firebug提交的一次成功的请求,这里以login我喜欢上的xiami ...

  2. php ajax提交post请求出现数组被截断情况的解决方法

    一.场景 今天做保存专题商品列表的时候发现,前端明明有2300多条数据,但是实际服务端接受存入数据库才166条 二.解决过程 经过调试发现前端页面提交post请求时数据量是正确的,但到服务端只能接受到 ...

  3. Android 使用HttpClient方式提交POST请求

    final String username = usernameEditText.getText().toString().trim(); final String password = passwr ...

  4. Android 使用HttpClient方式提交GET请求

    public void httpClientGet(View view) { final String username = usernameEditText.getText().toString() ...

  5. EBS-如何查看非自己提交的请求的结果

    http://www.cnblogs.com/quanweiru/p/4692071.html 如何查看非自己提交的请求的结果定位要找的请求SQL举例:SELECT req.request_id,   ...

  6. EBS环境提交新请求默认是"单一请求"

    http://blog.csdn.net/samt007/article/details/38304239 用过EBS的请求都知道,提交一个新报表都要点好几个按钮,其中一个很麻烦的就是选择提交新请求的 ...

  7. ajax提交post请求出现数组被截断情况的解决方法

    一.场景 php post 提交数据时传的数据时数组,没有多数据进行序列化处理.发现传到服务端时,部分数据丢失,查询了资料发现php对参数个数有限制,限制在php配置文件中(max_input_var ...

  8. 使用Larave5.6l提交POST请求出现The page has expired due to inactivity错误

    使用Larave5.6l提交POST请求出现The page has expired due to inactivity错误 一般是由于没有添加 csrf造成的 在表单下面的 第一个行 添加如下代码即 ...

  9. django提交post请求

    在做post的时候,view.py用到了下面的方法,如果是POST的method,就通过request.POTST['XX']获得html中name为XX的值,然后将值save到数据库里 models ...

随机推荐

  1. git difftool 详解

    一.如何比较两个版本之间的差异 1.显示版本得到版本的commit id 2.执行difftool命令 按Y进行比较,我用的是DiffMerge这个软件对代码进行比较的 二.比较当前所修改的内容 gi ...

  2. [转]解决Eclipse中编辑xml文件的智能提示问题

    转自:http://hi.baidu.com/cghroom/item/48fd2d0dc1fc23c675cd3c3e 摘要:  Eclipse for Android xml 文件代码自动提示功能 ...

  3. APP缓存数据线程安全问题

    问题 一般一个 iOS APP 做的事就是:请求数据->保存数据->展示数据,一般用 Sqlite 作为持久存储层,保存从网络拉取的数据,下次读取可以直接从 Sqlite DB 读取.我们 ...

  4. 雷军:重刷ROM的“自我格式化”

    本文来源于:百度百家 作者:金错刀 2014-03-14 10:33:06 最近,跟一个前金山高管聊起雷军,特别是雷军的变化,她的感觉是:雷总岂止是变化,简直是格式化,甚至是把自己重刷了一遍ROM. ...

  5. Android HttpURLConnection源代码分析

    Android HttpURLConnection源代码分析 之前写过HttpURLConnection与HttpClient的差别及选择.后来又分析了Volley的源代码. 近期又遇到了问题,想在V ...

  6. XGB 调参基本方法

    - xgboost 基本方法和默认参数 - 实战经验中调参方法 - 基于实例具体分析 在训练过程中主要用到两个方法:xgboost.train()和xgboost.cv(). xgboost.trai ...

  7. 关于thymeleaf+layout布局的使用方式,spring boot 访问页面(静态页面及jsp页面)

    首先建立相同部分的html,这里我命名为layout.html,放在了`templates/layout'文件夹下,这个路径以后是会用到的,以下是我的layout的代码,比较粗糙. 但是应该会更好的帮 ...

  8. MySql计算两个日期的时间差函数

    MySql计算两个日期时间的差函数: 第一种:TIMESTAMPDIFF函数,需要传入三个参数,第一个是比较的类型,可以比较FRAC_SECOND.SECOND. MINUTE. HOUR. DAY. ...

  9. unity, 立即生效动画:Animation.sample()

    在调用了动画播放之后,动画并不会立即应用(骨骼Transform并不会立即改变),最快也要等到本帧lateUpdate才能生效. 如果有特殊需求,希望在调用了动画播放之后立即生效,则可以紧接着调一句A ...

  10. (转载)220v交流接触器自锁接线图另接热继电器

    220v交流接触器自锁接线图另接热继电器 时间:2015-06-26 20:36:56编辑:电工栏目:接触器 导读:求一个220v交流接触器自锁接线图,外加个热继电器怎么接,接线图中两根粉色的线接的就 ...