使用 urllib2 创建 xml 请求
Creating xml request using urllib2
我需要创建访问 XML 服务的请求,它应该通过 HTTP 进行处理。 Ass 在文档中说我必须发送“4 个相关参数,这个参数将用作标识并提供请求”。此参数应类似于字符串:
"codes=12345"
"user=user12345"
"password=pass12345"
"partner=part12345"
根据文档,我有两个系统用于发送请求的 XML 文件:
1 通过以 MIME 格式编码的 URL application/x-www-form-
urlencoded: URL (“urlfile”)
2 通过直接在变量中输入数据,以 MIME 格式编码
application/x-www-form-urlencoded:直接在一个变量中(“xml”)。
据此,我的请求数据如下所示:
data='
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE petition SYSTEM "http://xml.example.com/xml/dtd/xml.dtd">
<petition>
<number>Country request</number>
<partner>Company</partner>
<type>5</type>
</petition>'
我使用 python 库 urllib2 创建了这个请求。所以这是我的代码:
request = urllib2.Request(url, data)
request.add_header("codes=12345", "user=user12345", "password=pass12345", "partner=part12345")
但是我得到一个错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: add_header() takes exactly 3 arguments (5 given)
所以我改变了header:
header = {'codes':'12345','user':'user12345','password':'pass12345','partner':'part12345'}
这就是我的代码之后的样子:
request = urllib2.Request(url, data, header)
response_xml = urllib2.urlopen(request)
response = response_xml.read()
print(response)
但是如果我没有经过身份验证的用户,我会收到这样的回复。我做错了什么?谢谢!
试试这个:
from urllib import urlencode
from urllib2 import urlopen
args = {'codes':'12345','user':'user12345','password':'pass12345','partner':'part12345'}
conn = urlopen(url,urlencode(args))
data = conn.read()
conn.close()
print(data)
我需要创建访问 XML 服务的请求,它应该通过 HTTP 进行处理。 Ass 在文档中说我必须发送“4 个相关参数,这个参数将用作标识并提供请求”。此参数应类似于字符串:
"codes=12345"
"user=user12345"
"password=pass12345"
"partner=part12345"
根据文档,我有两个系统用于发送请求的 XML 文件:
1 通过以 MIME 格式编码的 URL application/x-www-form- urlencoded: URL (“urlfile”)
2 通过直接在变量中输入数据,以 MIME 格式编码 application/x-www-form-urlencoded:直接在一个变量中(“xml”)。
据此,我的请求数据如下所示:
data='
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE petition SYSTEM "http://xml.example.com/xml/dtd/xml.dtd">
<petition>
<number>Country request</number>
<partner>Company</partner>
<type>5</type>
</petition>'
我使用 python 库 urllib2 创建了这个请求。所以这是我的代码:
request = urllib2.Request(url, data)
request.add_header("codes=12345", "user=user12345", "password=pass12345", "partner=part12345")
但是我得到一个错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: add_header() takes exactly 3 arguments (5 given)
所以我改变了header:
header = {'codes':'12345','user':'user12345','password':'pass12345','partner':'part12345'}
这就是我的代码之后的样子:
request = urllib2.Request(url, data, header)
response_xml = urllib2.urlopen(request)
response = response_xml.read()
print(response)
但是如果我没有经过身份验证的用户,我会收到这样的回复。我做错了什么?谢谢!
试试这个:
from urllib import urlencode
from urllib2 import urlopen
args = {'codes':'12345','user':'user12345','password':'pass12345','partner':'part12345'}
conn = urlopen(url,urlencode(args))
data = conn.read()
conn.close()
print(data)