摘要:
在通过URL访问HTTP SERVER的时候,通常会产生trace callback的异常,返回505的错误," VERSION IS NOT SUPPORTED ?" ,难道是客户端协议版本和服务端不兼容,这个就不太可能了,究竟是什么原因。要从URL的字符编码说起。
URL 字符编码:
URL 只能使用ASCII字符集。
来通过因特网进行发送。由于 URL 常常会包含 ASCII 集合之外的字符,URL 必须转换为有效的 ASCII 格式。
URL 编码使用 "%" 其后跟随两位的十六进制数来替换非 ASCII 字符。
URL 不能包含空格。URL 编码通常使用 + 来替换空格。
URL 编码转换:
各种SDK包都替换了都转换的方法,我们采用python来说明:
比如:http://xx.xx.xx.xx/api?key1=magics &key2=深圳麦集思科技有限公司 &key3=人工智能
如何进行转换呢,python 已经为我们准备好了库函数,我们自己去调用就好了。
data = {'key1': 'magics ','key2'='深圳麦集思科技有限公司 ','key3'='人工智能'}
s=urlencode(data)
s的最终结果是什么呢?
key3=%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD&key2=%E6%B7%B1%E5%9C%B3%E9%BA%A6%E9%9B%86%E6%80%9D%E7%A7%91%E6%8A%80%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8++&key1=magics+
这个才是http协议中所需要的字符串