我正在阅读API文档,他们说格式应该是:
https://app.datafireball.com/SearchService/search/xref?parts=[{"partNumber":"mypartnumber", "manufacturer":"my factory"}]&fmt=xml
当我在chrome开发者控制台中监控时。请求的网址如下所示:
https://app.datafireball.com/SearchService/search/xref?parts=[{%22partNumber%22:%22bav99%22,%22manufacturer%22:%22my%20factory%22}]&fmt=xml
我可以看到有几个字符已被编码,例如:
" => %22
space => %20
我知道我可以使用urllib.quote
来实现这一点,但是,我真的很难理解为什么他们只编码双引号和空格而不是{
大括号和其他字符。
最后,我必须以这样的方式对我的Python代码进行硬编码:
urltemplate = "https://app.datafireball.com/SearchService/search/xref?parts=[{{%22partNumber%22:%22{0}%22,%22manufacturer%22:%22{1}%22}}]&fmt=xml"
url = urltemplate.format(urllib.quote(mpn), urllib.quote(mfr))
看起来半硬编码的,任何人都可以帮助我理解为什么以及编码网址的正确方法是什么。
答案 0 :(得分:0)
我认为您不需要自己进行编码工作,将您的网址编码为不同格式的浏览器也会在调用服务器API时解码您的网址。