Python url中的空格
我正在尝试使用空格访问url:Python url中的空格,python,python-3.x,urllib3,Python,Python 3.x,Urllib3,我正在尝试使用空格访问url: url_string = "http://api.company.com/SendMessageXml.ashx?SendXML=<company><User><Username>username</Username><Password>passweord</Password></User><Content Type=sms>.." with urllib.reques
url_string = "http://api.company.com/SendMessageXml.ashx?SendXML=<company><User><Username>username</Username><Password>passweord</Password></User><Content Type=sms>.."
with urllib.request.urlopen(url_string) as url:
s = url.read()
url\u字符串=”http://api.company.com/SendMessageXml.ashx?SendXML=usernamepassweord.."
使用urllib.request.urlopen(url_字符串)作为url:
s=url.read()
问题在于“内容类型”中的空间分隔
将字符串转换为两个不同的块
如何发送此请求?导入urllib.parse,urllib.request
import urllib.parse, urllib.request
params = { "SendXML": "<company><User><Username>username</Username><Password>passweord</Password></User><Content Type=sms>.." }
url_string = "http://api.company.com/SendMessageXml.ashx?%s" % (urllib.parse.urlencode(params))
s = ""
with urllib.request.urlopen(url_string) as url:
s = url.read()
print s
params={“SendXML”:“usernamepassweord..”}
url_字符串=”http://api.company.com/SendMessageXml.ashx?%s“%(urllib.parse.urlencode(参数))
s=“”
使用urllib.request.urlopen(url_字符串)作为url:
s=url.read()
印刷品
导入urllib.parse,urllib.request
params={“SendXML”:“usernamepassweord..”}
url_字符串=”http://api.company.com/SendMessageXml.ashx?%s“%(urllib.parse.urlencode(参数))
s=“”
使用urllib.request.urlopen(url_字符串)作为url:
s=url.read()
印刷品
使用:
import urllib.parse
query=urllib.parse.urlencode({
“SendXML”:
“用户名密码”
})
urllib.request.urlopen(查询)
使用:
import urllib.parse
query=urllib.parse.urlencode({
“SendXML”:
“用户名密码”
})
urllib.request.urlopen(查询)
因为其他答案要么使用Python2.x,要么使用urllib,并且问题被标记为urllib3
,所以这里有一个在Python3.x上使用的版本
请求将为您编码url。如果出于某种原因需要手动执行此操作,可以在中找到
>params={'SendXML':'usernamepassweord'}
>>>url=”http://api.company.com/SendMessageXml.ashx"
>>>http=urllib3.PoolManager()
>>>r=http.request('GET',url,params)
因为其他答案要么使用Python2.x,要么使用urllib,并且问题被标记为urllib3
,所以这里有一个在Python3.x上使用的版本
请求将为您编码url。如果出于某种原因需要手动执行此操作,可以在中找到
>params={'SendXML':'usernamepassweord'}
>>>url=”http://api.company.com/SendMessageXml.ashx"
>>>http=urllib3.PoolManager()
>>>r=http.request('GET',url,params)
谢谢各位
我找到了另一个(疯狂但有效的)解决方案:
url_string.replace (" ","%20")
谢谢各位
我找到了另一个(疯狂但有效的)解决方案:
url_string.replace (" ","%20")
您是否尝试过用%20替换空间?是否尝试过用%20替换空间?如果您已经在使用urllib3,那么您应该使用它提供的功能。否则,您必须替换所有需要编码的内容,例如
。如果您已经在使用urllib3,那么您应该使用它提供的功能。否则,您将不得不替换所有需要编码的内容,例如
。它会从服务器上给我“非法XML”响应。@user1641071将参数[“SendXML”]
更改为原始XML数据。现在它可用于此exmaple!我的错误。非常感谢。它从服务器上给我“非法XML”响应。@user1641071将params[“SendXML”]
更改为原始XML数据。现在它可用于此exmaple!我的错误。非常感谢。
url_string.replace (" ","%20")