`

python的get和post方式请求详解

 
阅读更多

来自:http://blog.csdn.net/jianhong1990/article/details/8090204

 1.使用get方式时,url类似如下格式:

index.jsp?id=100&op=bind

 GET报问头如下:

GET /sn/index.php?sn=123&n=asa HTTP/1.1
 Accept: */*
 Accept-Language: zh-cn
 host: localhost
 

 Content-Type: application/x-www-form-urlencoded
 Content-Length: 12
 Connection:close

 

2.使用post方式时,POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据,可用来传送文件。

POST报文头如下:

POST /sn/index.php HTTP/1.1
Accept: */*
Accept-Language: zh-cn
host: localhost

Content-Type: application/x-www-form-urlencoded
Content-Length: 12
Connection:close
sn=123&n=asa

 

在http头后边有一空行,空行后边接着发送post数据。空行通知服务器以下不再有请求头。

 

3.可以发现的一点是,无论是post还是get方式,他们所传递的数据都要进行url编码

 

4. url编码是一种浏览器用来打包表单输入的格式。

 浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分或者分离地发给服务器

 不管哪种情况,在服务器端的表单输入格式样子象这样:

 

  theName=Ichabod+Crane&gender=male&status=missing& ;headless=yes

 

5.URL编码遵循下列规则:

     1.每对name/value由&;符分开;

     2.每对来自表单的name/value由=符分开。

     3.如果用户没有输入值给这个name,那么这个name还是出现,只是无值。

     4.任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码

6.所以,当我们使用get或者post传送数据之前,我们都需要对数据进行url编码。

   urllib库提供了一个函数来实现url的编码:

search=urllib.urlencode({'q':'python'})

输出为:

'q=python'

7.ok,现在正式开始python的get和post请求:

#!/usr/bin/python    
#-*-coding:utf-8-*-    
     
# 进行表单提交  小项  2008-10-09    
     
import httplib,urllib;  #加载模块    
     
#定义需要进行发送的数据    
params = urllib.urlencode({'cat_id':'6',     
                           'news_title':'标题-Test39875',     
                           'news_author':'Mobedu',     
                           'news_ahome':'来源',     
                           'tjuser':'carchanging',     
                           'news_keyword':'|',     
                           'news_content':'测试-Content',     
                           'action':'newnew',     
                           'MM_insert':'true'});     
#定义一些文件头    
headers = {"Content-Type":"application/x-www-form-urlencoded",     
           "Connection":"Keep-Alive","Referer":"http://192.168.1.212/newsadd.asp?action=newnew"};     
#与网站构建一个连接    
conn = httplib.HTTPConnection("192.168.1.212");     
#开始进行数据提交   同时也可以使用get进行    
conn.request(method="POST",url="/newsadd.asp?action=newnew",body=params,headers=headers);     
#返回处理后的数据    
response = conn.getresponse();     
#判断是否提交成功    
if response.status == 302:     
    print "发布成功!^_^!";     
else:     
    print "发布失败\^0^/";     
#关闭连接    
conn.close();  

 

分享到:
评论

相关推荐

    Python中get、post请求详解(HTTP请求头、状态码)

    我们知道通常浏览器支持get与post两种常见的请求方式,那么在python当中如何具体实现呢? GET 首先是get,我们知道get指令比较简单,通常便是在浏览器窗口地址栏中使用?xx=xxxxx 那么在python当中如何实现这个过程呢...

    Python使用requests发送POST请求实例代码

    ### Python使用requests库发送POST请求详解 在现代Web开发中,使用Python进行网络请求操作非常常见,特别是通过HTTP协议与服务器交互数据。Python中的`requests`库因其简洁易用而广受欢迎,它允许开发者轻松地发起...

    Python 使用requests模块发送GET和POST请求的实现代码

    ### Python 使用requests模块发送GET和POST请求的知识点详解 #### 一、requests模块简介 `requests` 是一个在Python中非常流行的HTTP库,它能够帮助开发者轻松地向服务器发起HTTP请求,获取响应,并处理响应数据。`...

    浅谈python3发送post请求参数为空的情况

    ### Python3发送POST请求参数为空的情况详解 #### 一、引言 在Web开发与测试领域,HTTP请求(包括GET和POST)是最基础的操作之一。其中,POST请求因其可以发送大量数据而被广泛应用于各种场景。然而,在某些情况下...

    Python-httpbin用PythonFlask编写的HTTP请求和响应服务

    【Python-Flask构建HTTP请求和响应服务:httpbin详解】 在Python的Web开发领域,Flask是一个轻量级的框架,它以其简洁和灵活的特性深受开发者喜爱。httpbin.org是一个在线工具,用于测试HTTP请求和响应,而httpbin...

    JAVA发送http get/post请求,调用http接口、方法详解

    首先,让我们了解一下GET和POST请求的基本概念: 1. **HTTP GET请求**:GET请求主要用于获取资源,它是幂等的,即多次执行同一请求不会改变服务端的状态。请求参数通常包含在URL中。 2. **HTTP POST请求**:POST...

    Python:requests库安装方式详解

    Python的requests库是一个非常流行的HTTP客户端库,它使得在Python中发送...一旦安装成功,你就可以利用requests库的强大功能,轻松地进行HTTP请求,如GET、POST、PUT等,以及处理响应数据,为你的Python项目提供便利。

    Python使用post及get方式提交数据的实例

    ### Python使用POST及GET方式提交数据的实例详解 在Python网络编程中,使用HTTP协议进行数据传输是非常常见的操作。其中,POST与GET是最为常用的两种请求方法。本篇文章将详细介绍如何利用Python通过POST和GET方式...

    python爬虫使用cookie登录详解

    1. **数据传送方式:** `POST`和`GET`。 - **GET**方式:直接在URL中添加查询参数。 - **POST**方式:通过`data`参数传递数据。 示例代码如下: ```python # GET请求示例 LOGIN_URL = ...

    Python Requests库详解

    它可以处理多种HTTP请求方式,比如GET、POST、PUT、DELETE等。库中的核心是requests模块,它提供了request方法,可以用来发送请求并获取响应。 对于爬虫来说,通常需要对网站的robots.txt进行检查,以了解网站是否...

    基于Python的Post请求数据爬取的方法详解

    ### 基于Python的Post请求数据爬取的方法详解 #### 一、引言 在进行Web开发或数据抓取时,经常会遇到需要通过Post请求来获取数据的情况。本篇文章将详细介绍如何使用Python来实现Post请求的数据爬取,并提供具体的...

    python爬虫_python爬虫详解_python爬虫_

    1. Requests库:是最常用的Python HTTP库,用于发送各种HTTP请求,支持GET、POST等方法,以及设置头部、Cookie等。 2. BeautifulSoup:是一个解析HTML和XML文档的库,用于提取和导航网页结构,便于抓取所需数据。 ...

    Python-第三方库requests详解.pdf

    ### Python-第三方库requests详解 #### 一、概述 `requests` 是一款广泛使用的 Python 库,用于处理 HTTP 请求。该库基于 `urllib` 开发,并采用了 Apache 2 Licensed 开源协议。与 `urllib` 相比,`requests` ...

    两万字博文教你python爬虫requests库详解篇.pdf

    - **请求方法 method**:如 GET 和 POST,直接调用对应的函数即可,如 `requests.get(url)` 或 `requests.post(url, data=data)`。 - **URL url**:要请求的资源地址。 - **参数 params**:通常用于 URL 查询字符串...

    python re模块的高级用法详解

    您可能感兴趣的文章:python下os模块强大的重命名方法renames详解python模块之re正则表达式详解python模块简介之有序字典(OrderedDict)Python 使用requests模块发送GET和POST请求的实现代码在Python中通过...

    python利用urllib和urllib2访问http的GET/POST详解

    ### Python利用urllib和urllib2访问HTTP的GET/POST详解 #### 前言 在Python编程中,网络请求是非常常见的操作之一。通过使用Python内置的`urllib`和`urllib2`库(后者仅限于Python 2.x版本),我们可以轻松地发送...

    python教程httpx详解

    在Python编程中,Httpx是一个强大的HTTP客户端库,它的出现为开发者提供了更加高效、现代且易用的HTTP请求处理方式。Httpx不仅支持常见的HTTP/1.1协议,还兼容HTTP/2以及WebSocket,这使得它能够适应各种复杂的网络...

    python爬虫详解(一看就会).pdf

    请求行中包含了请求方法(GET、POST等)、资源路径和HTTP协议版本。请求头提供了额外的信息,如客户端标识、请求参数等。请求体则用于传输实际的数据,如登录时的用户名和密码。并非所有请求都有请求体,GET请求通常...

    详解Python 重学requests发起请求的基本方式

    总结来说,`requests`库提供了一套简洁易用的接口,用于执行各种HTTP请求,包括GET和POST,以及处理不同的请求体类型。结合`requests-toolbelt`,可以更方便地处理复杂的数据提交,如上传文件。通过理解并熟练运用...

Global site tag (gtag.js) - Google Analytics