340
|
1 import hashlib
|
|
2 import httplib2
|
|
3 import json
|
|
4 import os.path
|
|
5 import Image
|
|
6 import zipfile
|
|
7 from urllib import urlencode
|
|
8
|
|
9 def DoGet(uri, data = {}):
|
|
10 d = ''
|
|
11 if len(data.keys()) > 0:
|
|
12 d = '?' + urlencode(data)
|
|
13
|
|
14 h = httplib2.Http()
|
|
15 resp, content = h.request(uri + d, 'GET')
|
|
16 if not (resp.status in [ 200 ]):
|
|
17 raise Exception(resp.status)
|
|
18 else:
|
|
19 try:
|
|
20 return json.loads(content)
|
|
21 except:
|
|
22 return content
|
|
23
|
|
24
|
|
25 def _DoPutOrPost(uri, method, data, contentType):
|
|
26 h = httplib2.Http()
|
|
27
|
|
28 if isinstance(data, str):
|
|
29 body = data
|
|
30 if len(contentType) != 0:
|
|
31 headers = { 'content-type' : contentType }
|
|
32 else:
|
|
33 body = json.dumps(data)
|
|
34 headers = { 'content-type' : 'application/json' }
|
|
35
|
|
36 resp, content = h.request(
|
|
37 uri, method,
|
|
38 body = body,
|
|
39 headers = headers)
|
|
40
|
|
41 if not (resp.status in [ 200, 302 ]):
|
|
42 raise Exception(resp.status)
|
|
43 else:
|
|
44 try:
|
|
45 return json.loads(content)
|
|
46 except:
|
|
47 return content
|
|
48
|
|
49
|
|
50 def DoDelete(uri):
|
|
51 h = httplib2.Http()
|
|
52 resp, content = h.request(uri, 'DELETE')
|
|
53 if not (resp.status in [ 200 ]):
|
|
54 raise Exception(resp.status)
|
|
55 else:
|
|
56 try:
|
|
57 return json.loads(content)
|
|
58 except:
|
|
59 return content
|
|
60
|
|
61
|
|
62 def DoPut(uri, data = {}, contentType = ''):
|
|
63 return _DoPutOrPost(uri, 'PUT', data, contentType)
|
|
64
|
|
65
|
|
66 def DoPost(uri, data = {}, contentType = ''):
|
|
67 return _DoPutOrPost(uri, 'POST', data, contentType)
|