我正在尝试关注这篇关于无头Oauth身份验证的博客文章:
http://blog.databigbang.com/automated-browserless-oauth-authentication-for-twitter/
基本上我是尝试使用jython来调用Htmlunit,打开授权网页并接受它。但是,jython和httplib2之间有一些不兼容的地方
File "/Users/andrey/jython2.7b1/Lib/site-packages/httplib2-0.8-py2.7.egg/httplib2/iri2uri.py", line 71, in iri2uri
authority = authority.encode('idna')
LookupError: unknown encoding 'idna'如何修复此错误?如果我导入encodings.idna,那么stringprep,re,编解码器也必须导入,这是jython所没有的。
发布于 2014-04-23 10:24:57
Jython没有idna支持,如果你想做同样的事情,你必须调用Java。
要将Unicode编码为IDNA ASCII格式:
import java.net.IDN
authority = java.net.IDN.toAscii(authority)要将IDNA ASCII解码为Unicode:
authority = java.net.IDN.toUnicode(authority)如果您正在修改httplib2 (或任何其他库),并且不想破坏它在其他Python实现中的功能,您可以这样做:
import platform
if platform.python_implementation() == "Jython":
import java.net.IDN
# do IDNA things here
else:
# use .encode('idna') Pythonicallyhttps://stackoverflow.com/questions/17682180
复制相似问题