Python 如何对发送请求的原始URL字符串进行编码
我需要通过电子邮件发送请求Python 如何对发送请求的原始URL字符串进行编码,python,python-2.7,Python,Python 2.7,我需要通过电子邮件发送请求 request_url = "http://localhost:8005/materials/start_date=2012-01-29&end_date=2013-03-29&table_name=Unemployment rate + emplyment rate&measure=All" requests.get(request_url) 然而,我没有从Python中的请求中得到任何东西,但是我可以通过浏览器获得预期的响应,我认为这
request_url = "http://localhost:8005/materials/start_date=2012-01-29&end_date=2013-03-29&table_name=Unemployment rate + emplyment rate&measure=All"
requests.get(request_url)
然而,我没有从Python中的请求中得到任何东西,但是我可以通过浏览器获得预期的响应,我认为这是转义字符串的问题,如何以正确的方式进行
使现代化
我尝试了以下方法,但结果不等于http://localhost:8005//materials/start_date=2012-01-29和结束日期=2013-03-29和表格名称=失业率%20
p = {
"start_date": start_date,
"end_date": end_date,
"table_name": table_name
}
req = requests.get(request_url, params=p)
将字典作为请求的参数传递给请求。获取并让库处理构建参数的操作,例如:
request_url = "http://localhost:8005/materials/"
requests.get(request_url, params={
'start_date': '2012-01-29',
'end_date': '2013-03-29',
# etc....
}
)
如果服务器坚持不接受它应该接受的?
,那么:
from urllib import urlencode
requests.get(request_url + urlencode({
'start_date': '2012-01-29',
'end_date': '2913-03-29'})
)
您好,谢谢您的回复,但方法与http://localhost:8005//materials/start_date=2012-01-29&end_date=2013-03-29&table_name=deployee%20rate
http get方法因此服务器不需要正确的?key1=value1&key2=value2
格式的查询参数?事实上,它期望这是路径的一部分!?您好,我可以删除前导的?
问号吗?服务器不希望这样。@user3675188我已经更新了答案,包括使用urlencode
,它将进行转义,并提供一个没有前导的字符串?