使用gdata 2.0.16 Python库时出现“禁止不安全的HTTP请求。请使用HTTPS。”

5 投票
3 回答
2012 浏览
提问于 2025-04-17 12:12

我正在尝试用以下代码来获取一个用户,这段代码来自于gdata provisioning api 文档。我是在一个运行着django 1.3的应用中尝试这个,使用的是gdata-2.0.16python2.7

from gdata.apps import client
from myapp import settings
client = client.AppsClient(domain=settings.GOOGLE_ADMIN_DOMAIN)
client.ClientLogin(email=settings.GOOGLE_ADMIN_EMAIL, password=settings.GOOGLE_ADMIN_PASSWORD, source='apps')
user_account = client.RetrieveUser('user_name')

为了保护隐私,我把实际的用户名改成了'user_name',但代码的大致意思就是这样。

当解释器执行到上面代码的最后一行时,我遇到了以下错误:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/gdata/apps/client.py", line 182, in RetrieveNickname
    return self.GetEntry(uri, desired_class=gdata.apps.data.NicknameEntry)
  File "/usr/local/lib/python2.7/dist-packages/gdata/client.py", line 652, in get_entry
    desired_class=desired_class, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/gdata/client.py", line 319, in request
    RequestError)
RequestError: Server responded with: 403, <HTML>
<HEAD>
<TITLE>Insecure HTTP requests not permitted.  Use HTTPS.</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Insecure HTTP requests not permitted.  Use HTTPS.</H1>
<H2>Error 403</H2>
</BODY>
</HTML>

我在文档中找不到关于使用HTTPS而不是HTTP的相关内容。我是不是漏掉了什么?

3 个回答

0

在客户端认证后加上这一行会有帮助:
client.ssl=True。

0

试试在这个链接中找到的补丁,链接是 问题的评论3,这个问题的标题是 市场中的AppsService - SSL问题

8

在创建客户端对象之后,执行 client.ssl = True。这样做会让 gdata API 使用安全的连接。

撰写回答