urllib2.Request中post的数据格式

0 投票
1 回答
1151 浏览
提问于 2025-04-15 20:17

在使用 urllib2.Request(someurl,data) 之前,数据应该是什么样子的呢?我试过用 [('name1','value1'),('name2','value2'),...] 这种格式,但不管用。:(

补充说明:我在程序里做了个日志,记录了 urllib.urlencode(data) 的值:

content=%E5%8F%91%E5%B8%83%E4%BA%86%E4%B8%80%E4%B8%AA%E6%96%B0%E4%B8%BB%E9%A2%98%EF%BC%9A%3Ca+href%3D%27http%3A%2F%2Fbbs.jianshe99.com%2Fforum-5-195%2Ftopic-448618.html%27+target%3D%27_blank%27%3E+fsdfdsf%3C%2Fa%3E

然后把它发送到一个 PHP 脚本,内容是:

<?php
print_r($_POST);
?>

但是总是收到这样的回复:

array()

1 个回答

2

data 可以是一个 字符串,用来指定要发送给服务器的额外数据;如果不需要发送数据,则可以用 None 表示。目前,只有 HTTP 请求会使用 data;当提供了 data 参数时,HTTP 请求会变成 POST 请求,而不是 GET 请求。data 应该是一个标准的 缓冲区,格式为 application/x-www-form-urlencoded。你可以使用 urllib.urlencode() 函数,它接受一个映射或一系列的二元组,并返回一个符合这种格式的字符串。

另见

撰写回答