- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用以下代码。
import urllib2
#Setting proxy
myProxy = {'https':'https://proxy.example.com:8080'}
proxy = urllib2.ProxyHandler(myProxy)
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
#Access URL
auth_token = "realLy_loNg_AuTheNicaTion_toKen"
headers={"Content-Type":"application/json",
"charset": "UTF-8",
"Authorization": "Bearer %s" %auth_token}
url = "https://example.com/something"
req = urllib2.Request(url, None, headers)
reply = urllib2.urlopen(req)
print reply.getcode()
我在 nGrinder 中将上面的代码作为 Jython 脚本运行。当我使用 Jython 在我的系统上运行相同的脚本时,它工作正常并返回 200(OK 状态代码)。当我在 nGrinder 上运行它时,出现错误
(-1, 'SSL exception: Differences between the SSL socket behaviour of cpython vs. jython are explained on the wiki: http://wiki.python.org/jython/NewSocketModule#SSL_Support')
知道为什么会这样吗?
编辑:我一直在尝试,问题肯定出在长身份验证 token 上。我觉得这可能是一些编码问题。发布了一个类似的问题 here前。我读过它,但没有正确描述。但它可能是一个很好的引用。
最佳答案
这似乎是证书信任的问题。 http://bugs.jython.org/issue1688
有这两个选项可以解决您的问题。
Jython is not like cpython. Cpython does not verify the chain of trust for server certificates. Jython does verify the chain of trust, and will refuse to open the connection if it cannot verify the server.
So you have two options.
- Disable certificate checking on jython
http://jython.xhaus.com/installing-an-all-trusting-security-provider-on-java-and-jython/ http://tech.pedersen-live.com/2010/10/trusting-all-certificates-in-jython/
- Add your (self-signed?) certificate to your local java trust store, so that your client will trust your server.
Google("java install self-signed certificate")
另一个原因可能是 python 和 java 的不兼容版本 (https://github.com/geoscript/geoscript-py/issues/32)
I just tried with Jython 2.5.3 and JDK 1.7 on Mac and was able to run ez_setup.py.
Java version: [Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.7.0_51
Swapping to Oracle JDK 7 did the trick.
请检查这是否解决了问题,根据 jython 的实现和错误,问题是由于 HTTPS(SSL 层)https://github.com/int3/jython/blob/master/Lib/socket.py
# These error codes are currently wrong: getting them correct is going to require
# some investigation. Cpython 2.6 introduced extensive SSL support.
(javax.net.ssl.SSLException, ALL) : lambda x: sslerror(-1, 'SSL exception'+_ssl_message),
关于python - <urlopen error (-1, 'SSL 异常 : Differences between the SSL socket behaviour of cpython vs. jython 在 wiki 上有解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39382800/
如果您使用 -i 选项调用 cpython 解释器,它会在完成任何命令或脚本后进入交互模式。有没有办法在程序中让解释器执行此操作,即使它没有给出 -i?明显的用例是在异常情况发生时通过交互式检查状态进
我是按照官方cpython代码link here上的说明操作的.我做了一个 hg update 3.5 然后做了以下。 sudo apt-get build-dep python3.5 但它抛出了一个
我打算尝试使用 PyPy。但是我用 rust-cpython 编写的扩展(.so 文件)在使用 pypy3 执行时无法加载: ImportError: No module named 'pkg.lib
我试图配置预提交挂接,在运行预提交运行--所有文件时,我收到以下错误:。我已尝试升级pip以解决此问题pip安装--升级pip,但我收到另一个错误:。我尝试检查PIP和PIP3的版本,但现在我也收到了
我想为 android 创建电影下载应用程序以供学习。 为了方便开发,我想使用 youtube-dl 作为下载器后端。 所以我想将 Cpython 运行时和 ffmpeg(用于转换电影格式)嵌入到 A
我有一个 Windows fatal exception: code 0xc0000374 - 是的,有多处理(等待但是......)。 Google 表示异常代码 0xc0000374 表示堆损坏。
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我刚刚成功编译了 C++ 类的 Python 包装器。但是,当我尝试将模块加载到 Python 时(通过 import cell),我收到以下消息: ImportError: dynamic modu
在我用 python 函数包装的一个 C++ 源文件中,有人包含了以下内容: namespace some_namespace { static double some_double; } flo
例如,0 STORE_NAME 0 (sys) 是import sys 指令的一部分。这种指令格式有任何文档吗?更何况,这种格式是Python的标准吗?还是具体实现? 最佳答案 即Python byt
我有这个故意不高效的代码: def suffix_array_alternative_naive(s): return [rank for suffix, rank in sorted((s[
应该如何编写 CPython 扩展,以便 pydoc 提及参数名称而不是 (...)? 我关注了 official python tutorial about extending Python ,甚至
我正在尝试在运行 Raspbian Jessie 的 Raspberry Pi 上从源代码构建和安装 python 3.6.2。以下是构建过程的过程: $ ./configure --enable-o
GAE 有各种限制,其中之一是最大的可分配内存块大小为 1Mb(现在是 10 倍,但这并没有改变问题)。这一限制意味着不能在 list() 中放置超过一定数量的项目,因为 CPython 会尝试为元素
我和一个 friend 聊天,比较语言,他提到 Java 的自动内存管理优于 Python,因为 Java 有压缩,而 Python 没有——因此对于长时间运行的服务器,Python 是一个糟糕的选择
我一直在深入研究源代码,以找出打印结果的时间点。例如: >>> x = 1 >>> x + 2 3 以上两条语句编译为: 1 0 LOAD_CONST
我最近在生产系统中发现了一个潜在的错误,其中两个字符串使用身份运算符进行比较,例如: if val[2] is not 's': 我想这无论如何都会经常起作用,因为据我所知,CPython 将短的不可
Python 允许字符串乘以整数: >>> 'hello' * 5 'hellohellohellohellohello' 这是如何在 CPython 中实现的? 我特别感谢指向源代码的指针; the
我正在阅读 this page在文档中,并注意到它说 This is the full Python grammar, as it is read by the parser generator an
我目前正在制作 CPython 3.0 Python 解释器的嵌入式系统端口,我对任何引用资料或文档特别感兴趣,这些引用资料或文档提供有关版本 3.0 的代码设计和结构的详细信息,甚至是任何2.x 版
我是一名优秀的程序员,十分优秀!