python网页请求函数,python网络请求

如何用Python写一个http post请求

HTTP 协议规定 POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须使用什么编码方式。常见的四种编码方式如下:

10年的钟楼网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整钟楼建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“钟楼网站设计”,“钟楼网站推广”以来,每个客户项目都认真落实执行。

1、application/x-www-form-urlencoded

这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。请求类似于下面这样(无关的请求头在本文中都省略掉了):

POST HTTP/1.1 Content-Type:

application/x-www-form-urlencoded;charset=utf-8

title=testsub%5B%5D=1sub%5B%5D=2sub%5B%5D=3

2、multipart/form-data

这又是一个常见的 POST 数据提交的方式。我们使用表单上传文件时,必须让 form 的 enctyped 等于这个值,下面是示例

POST HTTP/1.1

Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryrGKCBY7qhFd3TrwA

------WebKitFormBoundaryrGKCBY7qhFd3TrwA

Content-Disposition: form-data; name="text"

title

------WebKitFormBoundaryrGKCBY7qhFd3TrwA

Content-Disposition: form-data; name="file"; filename="chrome.png"

Content-Type: image/png

PNG ... content of chrome.png ...

------WebKitFormBoundaryrGKCBY7qhFd3TrwA--

3、application/json

application/json 这个 Content-Type 作为响应头大家肯定不陌生。实际上,现在越来越多的人把它作为请求头,用来告诉服务端消息主体是序列化后的 JSON 字符串。由于 JSON 规范的流行,除了低版本 IE 之外的各大浏览器都原生支持 JSON.stringify,服务端语言也都有处理 JSON 的函数,使用 JSON 不会遇上什么麻烦。

4、text/xml

它是一种使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范。

那么Python在调用外部http请求时,post请求怎么传请求体呢?说实话楼主只实践过【1、application/x-www-form-urlencoded】【2、multipart/form-data 】和【3、application/json】

一、application/x-www-form-urlencoded

import urllib

url = ""

body_value = {"package": "com.tencent.lian","version_code": "66" }

body_value = urllib.urlencode(body_value)

request = urllib2.Request(url, body_value)

request.add_header(keys, headers[keys])

result = urllib2.urlopen(request ).read()

二、multipart/form-data

需要利用python的poster模块,安装poster:pip install poster

代码:

from poster.encode import multipart_encode

from poster.streaminghttp import register_openers

url = ""

body_value = {"package": "com.tencent.lian","version_code": "66" }

register_openers()

datagen, re_headers = multipart_encode(body_value)

request = urllib2.Request(url, datagen, re_headers)

# 如果有请求头数据,则添加请求头

request .add_header(keys, headers[keys])

result = urllib2.urlopen(request ).read()

二、application/json

import json

url = ""

body_value = {"package": "com.tencent.lian","version_code": "66" }

register_openers()

body_value = json.JSONEncoder().encode(body_value)

request = urllib2.Request(url, body_value)

request .add_header(keys, headers[keys])

result = urllib2.urlopen(request ).read()

python 中 requests 库中的提交请求函数,有的是 params 有的是data,还有 json,有啥区别?

请求参数提交时,可以以QueryString的方式后缀在 URL 后(比如 GET 或 DELETE 请求时),或者可以在请求体中以键值对或 JSON 的方式提交(比如 PUT 或 POST 请求时),对应的,如果是在前者,那么提交数据使用参数 params,如果是后者,提交数据是 JSON 的情况下就使用 json,否则就使用 data。

想要相关实现的操作和源码,参考黑马程序员的相关教程,官网都有配套资料,资料当中就含有课件+笔记+源码了。总之非常适合小白学习,想要学习的可以去看看。

Python网络请求和解析json数据

Python 的 json 模块提供了两个函数 json.dumps() 和 json.loads() 来编码和解码JSON数据。

如果要处理的是文件而不是字符串,可以使用 json.dump() 和 json.load() 来编码和解码JSON数据。例如:


分享标题:python网页请求函数,python网络请求
分享网址:http://myzitong.com/article/dseodhj.html