我正在用cx_Freeze打包我的应用程序。我正在使用requests.post
来获取JSON,但出现错误。
AppEnginePlatformError:在此环境中URLFetch不可用。
from base64 import b64encode
import json
import requests
api_key = **************
ENDPOINT_URL = 'https://vision.googleapis.com/v1/images:annotate'
with open(row.path, 'rb') as f:
print(row.path)
ctxt = b64encode(f.read()).decode()
img_requests.append({
'image': {'content': ctxt},
'features': [{
'type': 'TEXT_DETECTION',
'maxResults': 1
}]
})
img_encode = json.dumps({"requests": img_requests }).encode()
response = requests.post(ENDPOINT_URL,data=img_encode, verify=True,params={'key': api_key},
headers={'Content-Type': 'application/json'})
我应该怎么做,应该使用requests.post
或其他方式代替urllib
?
答案 0 :(得分:1)
我使用了urllib
,现在工作正常。
代码:
hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'Accept-Encoding': 'none',
'Accept-Language': 'en-US,en;q=0.8',
'Connection': 'keep-alive'}
req = urllib.request.Request(url=ENDPOINT_URL + api_key, headers=hdr)
req.add_header('Content-Type', 'application/json')
response = urllib.request.urlopen(req, img_encode)