首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WorkEtc的Python实现。API接口

WorkEtc的Python实现。API接口
EN

Stack Overflow用户
提问于 2014-01-10 04:33:26
回答 1查看 80关注 0票数 0

我找到了关于这项工作的this帖子等。Python REST客户端的论坛和使用的论坛没有包括代码的缩进,作者也没有包括它们,所以我所做的就是输入我认为是正确的缩进,并得到以下结果:

代码语言:javascript
复制
import sys, json, urllib
from httplib2 import Http

class WORKetcRESTClient():
    session_key = None
    connector_hash = None

    def __init__(self,url):
        if not "http://" in url and not "https://" in url:
            url = "http://%s" % url
            self.base_url = url
        else:
            self.base_url = url

    def authenticate(self,user,password):
        args = { "email" : user,"pass" : password,}
        res = self.request("AuthenticateWebSafe", args)

        if res["Code"] == 1:
            self.session_key = res["SessionKey"]
            self.user = res["User"]
            return True
        else:
            return False

    def request(self,service,args):
        url = "%s/%s" % (self.base_url, service)
        if not self.session_key is None:
            url = "%s?VeetroSession=%s" %(url,self.session_key)
        p = {}
        p['data'] = json.dumps(args)
        h = Http()
        r,c = h.request(url, body=json.dumps(args), method="POST", headers = {'contentType' : 'application/json; charset=utf-8'})
        if r.status == 200:
            jsondata = json.loads(c)
            return jsondata
        else:
            print r,c
            return {}

client = WORKetcRESTClient('http://company.worketc.com')
client.authenticate('User@company.com', 'pAsSwOrD')
result = client.request('FindCompanies',{'keywords':'customer'})
print result

说实话,如果运行时没有任何错误,我不确定我会把什么打印到控制台上,但我得到的错误使我无法找出:

代码语言:javascript
复制
Traceback (most recent call last):
 File "worketc.py", line 42, in <module>

  File "worketc.py", line 17, in authenticate
    res = self.request("AuthenticateWebSafe", args)
  File "worketc.py", line 34, in request
    if r.status == 200:
UnboundLocalError: local variable 'r' referenced before assignment

它告诉我变量'r‘在赋值/创建之前被调用,但考虑到它在当前脚本中的位置,我不确定它需要被创建或移动到哪里。有谁能解释一下这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2014-01-10 04:39:04

代码语言:javascript
复制
   if not self.session_key is None:
        url = "%s?VeetroSession=%s" %(url,self.session_key)
   p = {}
   p['data'] = json.dumps(args)
   h = Http()
   r,c = h.request(url, body=json.dumps(args), method="POST", headers = {'contentType' : 'application/json; charset=utf-8'})

是正确的缩进

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21030536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档