问题标签 [httplib2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Grooveshark 提前关闭连接 (httplib.BadStatusLine)
我正在尝试连接到grooveshark。因为这个 python 是我选择的语言。但我撞到了一堵砖墙。看起来grooveshark最近改变了他们协议的一部分,或者我可能遇到了python的限制。
我正在与来自 github 的 JackTheRipper51 “一起”工作,他为grooveshark 制作了这个库:https ://github.com/jacktheripper51/groove-dl 它实际上不是一个库,但我很快重新编码为一个库。
本周早些时候它运行良好,我可以将它用于我的项目。但是 2 天前它开始在 getToken 函数上失败,httplib 开始返回httplib.BadStatusLine: ''
,从我的研究来看,这意味着服务器提前关闭了连接。
从这项研究中,我开始查看grooveshark 的javascript 和flash 源代码,但这并没有返回任何有价值的东西。所以我做了任何理智的人花了 5 个小时查看反编译的动作脚本而之前从未在其中编写过一行代码,并将其归咎于 Groovesharks 服务器。
具体来说,我认为grooveshark可能会拒绝具有Connection: close
标题的连接。因此,我决定在REST Console
Chrome 的扩展程序中对其进行测试。
我让python脚本转储了它正在编码的json,然后我将它粘贴到Rest Console,点击POST,它返回了预期的数据。我现在确定我是对的并非不可能。
我的下一步是在Connection: keep-alive
我拥有的 httplib2(因为它支持)中编码,但问题仍然存在。
我已经在wireshark中进行了测试(删除了https中的SSL,它确实发送了Connection: keep-alive
,这会导致grooveshark响应,但是使用https required
)
我只修改了一小部分代码。
完全改变了 getToken()
我添加了 httplib2 初始化的内容:
我导入了httplib2:
我还重命名了 json 构造函数,只是因为我想要更具描述性。
完整的追溯是:
是什么导致了 BadStatusLine,我该如何解决它。
PS 我知道他们在这件事爆发的前一天有一个 8 小时的会议,我敢打赌这已经在议程上。
更新:JackTheRipper51 通知我,无论您发送什么内容,所有对grooveshark.com/more.php 的ssl 请求都会发生这种情况。这让我相信这是蟒蛇在捉弄我们。
更新 2:
JackTheRipper51 刚刚告诉我它确实是 python。这是他的帖子:
我根本不需要C。准备被激怒。一个简单的
盒子给了我一个令牌... jsontest 在这里
即使 json 在语法上不正确,它也总是至少返回一些标头!一直都是 Python ......
剩下的唯一问题是python为什么要这样做?
python - 每个线程具有不同代理的多线程爬虫,正确的方法?
我将编写一个计划在大约 10M 页面上运行的多线程爬虫,为了加快速度,我需要同时获取大约 10~ 个不同的页面。
每个爬虫线程将使用不同的代理并将结果推送到队列,另一方面,我将有更多的工作人员从队列中获取结果,解析并将它们插入数据库。
这是正确的方法吗?在队列中保存太多结果会不会有问题?我应该担心锁吗?(使用队列模块)。哪个 HTTP 库最适合我的需求?(httplib2/urllib2)。
创建每个线程时,我应该将请求对象的新实例传递给每个线程,还是应该移动请求对象并在线程中使用其“getPage”函数?
谢谢。
python - 获取 OAuth 身份验证 URL 时出错
我在使用 AppHarbor API 之前授权用户的 Python 桌面应用程序中有以下代码。我正在遵循知识库中提到的步骤,并具有以下身份验证代码:
但是,在发送请求时,响应不正确,这是错误:
我在这里缺少什么吗?
编辑:以下是抛出的堆栈跟踪:
在调试到调用后,我到达了发出请求的 httplib2._request 函数
这导致以下页面出现错误响应 = 302(在内容对象中显示)
该函数接下来从内容中删除主体以调用另一个主体设置为无的请求,从而导致引发错误。
python - 如何指定python请求http put body?
我正在尝试使用 requests 模块重写一些旧的 python 代码。目的是上传附件。邮件服务器需要以下规范:
有效的旧代码:
没有找到如何在请求中使用正文部分。
我设法做到了以下几点:
但不知道如何用文件内容指定正文部分。
谢谢你的帮助。奥马尔。
python - 在 Python 中通过代理将 XML 数据发布到服务器
我需要发送一个包含以下格式数据的请求:
通常,它包含一个 XML 查询。假设我希望它发送的服务器是https://some/server
并且我的代理是proxy:port_number
. 我尝试通过以下方式使用httplib2
with :SocksiPy
它有效,但响应不是预期的。显然是因为我需要使用 HTTPS 代理(这是相同的)。我没有任何证书信息 - 类似的工作 Perl 脚本不使用,它将代理定义为环境变量。SocksiPy
hasPROXY_TYPE_SOCKS4
和PROXY_TYPE_SOCKS5
constants 但是,我不知道如何使用它们(不定义证书会引发异常)。请指出我如何做到这一点。
也许它适合使用httplib
with xmlrpclib
?如何定义这些并放在一起工作?
python - Python httplib2 不适用于经过身份验证的资源
我有一个经过身份验证的资源,需要领域、用户名和密码进行身份验证。Python 的 urllib2 有提供领域的规定,而我没有找到 httplib2 的任何规定。以下是使用 urllib2 的示例代码:
这里的“受保护”是身份验证所需的领域。
现在看看 httplib2 :
在 httplib2 的情况下,我没有找到任何提供域字符串进行身份验证的规定。
有没有办法在 httplib2 中添加这个领域字符串?
oauth-2.0 - window7 64上的Httplib2模块安装
在 Python 中,我使用了 easy_install 并尝试安装 oauth2。然后我发现它需要httplib2。
使用:在命令提示符下easy_install httplib2。并在 site-packages 目录中找到了 httplib2 0.7.6 egg。
但是当我导入 httplib2 时,它会返回: ImportError: No module named httplib2
我可以让'import httplib2'工作的唯一方法是首先在shell中运行httplib2包中的设置文件,然后'import oauth2'。
我不知道该怎么做,因为我需要 oauth2 才能连接到 Yelp API。请帮我解决这个问题,非常感谢你!!!!
python - Httplib2 ssl 错误
今天我遇到了一个有趣的问题。
我正在使用foursquare推荐的python库httplib2 raise
在尝试请求 oauth 令牌时
在
有谁知道为什么会这样?
java - Python下间歇性“sslv3 alert handshake failure”
我有一个在 JBoss 下运行的用 Java 编写的 REST API。最近我们将 JVM 从 1.6 更新到了 1.7。这开始导致只有我们正在连接的 Python 客户端出现问题。间歇性地,Python 客户端会出现握手失败。我们编写了一个非常简单的测试来重现问题:
给出以下输出:
第 67 次调用在此运行中失败,但每次运行测试时它在不同的时间失败。
我们的其他客户端(Java、Groovy 和 Ruby)可以正常工作。
如果我将 JVM 切换回 1.6,故障就会停止。
我使用以下方法进行了 openssl 检查:
它返回了这个:
这似乎是正确的,但我不确定。如果每次通话都失败,那将是一回事,但只是随机失败真的很奇怪。有人见过这个吗?
python - pyinstaller 编译的文件有 ssl 问题,错误:185090050
我有一些在 python ide 和 cmd 提示符下成功运行在我的 windows 机器上的 python 代码。
在我用 pyinstaller 编译(到一个文件中)后,我收到以下错误:
导致错误的我的代码子集如下:
应该是一个简单的api请求!我已经查看了所有内容并尝试在代码开头使用以下内容:
……那没用。
我还用新的 cacert.pem(重命名为 cacerts.txt)替换了我在 httplib2 文件夹中的 cacerts.txt 文件……但这没有用。
我试图用这个禁用ssl:
...但这没有用。
如何使用 pyinstaller 编译我的 python 脚本,而不会弄乱?