我想从我的gae服务器向api发出https请求,例如使用urlfetch。 示例调用以curl命令的形式给出。
curl <URL> \
-u <USER_KEY>: \
-d "infoa=123" \
-d "infob='ABC" \
-d "token=<SOME_TOKEN>" \
-d "description=Test"
我想知道的是,HTTPS请求会是什么样子,所以我可以使用this文档来复制它。可能是错误的,但是我已经使用了--trace-ascii -
卷曲,但是从ouptut我仍然无法100%说出我发出的请求是什么样的。
他们转换为http请求的哪个方面?会不会像这样的工作:
result = urlfetch.fetch(
url='<URL>',
payload={user: <USER_KEY>, data: {infoa=123, infob=ABC, ...}},
method=urlfetch.POST,
headers=headers)
答案 0 :(得分:0)
所以:-u for user进入授权头。基本加密是base64。 -d用于数据进入有效负载。不同的-d与简单的&符连接。
try:
headers = {'Content-Type': 'application/x-www-form-urlencoded',
"Authorization": "Basic %s" % base64.b64encode(<some_private_user_authentication>)} # base64 or similar needs to be imported
result = urlfetch.fetch(
url='<URL of endpoint>',
payload='infoa={}&infob={}&description=Test Transaction'.format(info_a, info_b),
method=urlfetch.POST,
headers=headers)
print repr(result.content) # do things..
except urlfetch.Error:
logging.exception('Caught exception fetching url')
print 'Caught exception fetching url' # do other things..