Im trying to make a url shortener using Google URL Shortener API with App Engine
this is my source code in main.py
from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
from xml.dom import minidom
from google.appengine.ext.webapp.util import run_wsgi_app
import httplib, json
import cgi
class MainPage(webapp.RequestHandler):
def get(self):
self.response.out.write("""
<html>
<head>
<title>Simple Url Shortener</title>
<body>
Url shortener using Google URL Shortener API. Masukkan url
yang pengen dipendekin.
<form action="/hasil" method="post">
<div>Url</div><div><textarea name="url" rows="1"
cols="50"></textarea></div>
<div><input type="submit" value="Cari"></div>
</form>
</body>
</html>""")
class Cari(webapp.RequestHandler):
def post(self):
url = self.request.get('url')
conn = httplib.HTTPSConnection('www.googleapis.com')
conn.connect();
short = '"'+url+'"'
body = '{"longUrl": %s}' % short
headers = {'content-type':'application/json'}
conn.request('POST', '/urlshortener/v1/url', body, headers)
response = json.loads(conn.getresponse().read())
self.response.out.write('<html><title>Simple Url
Shortener</title><body>Url yang sudah dipendekin dari ', url, '
:<pre>')
self.response.out.write(response["id"])
self.response.out.write('</pre></body></html>')
application = webapp.WSGIApplication([('/', MainPage), ('/hasil',
Cari)], debug=True)
def main():
run_wsgi_app(application)
if __name__ == '__main__':
main()
and its get error message :
Traceback (most recent call last):
File "C:\Program
Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py",
line 702, in __call__
handler.post(*groups)
File "D:\latian web\url shortener\main.py", line 55, in post
response = json.loads(conn.getresponse().read())
File "C:\Program
Files\Google\google_appengine\google\appengine\dist\httplib.py", line
213, in getresponse
self._allow_truncated, self._follow_redirects)
File "C:\Program
Files\Google\google_appengine\google\appengine\api\urlfetch.py", line
260, in fetch
return rpc.get_result()
File "C:\Program
Files\Google\google_appengine\google\appengine\api\apiproxy_stub_map.py",
line 592, in get_result
return self.__get_result_hook(self)
File "C:\Program
Files\Google\google_appengine\google\appengine\api\urlfetch.py", line
348, in _get_fetch_result
rpc.check_success()
File "C:\Program
Files\Google\google_appengine\google\appengine\api\apiproxy_stub_map.py",
line 558, in check_success
self.__rpc.CheckSuccess()
File "C:\Program
Files\Google\google_appengine\google\appengine\api\apiproxy_rpc.py",
line 156, in _WaitImpl
self.request, self.response)
File "C:\Program
Files\Google\google_appengine\google\appengine\api\apiproxy_stub.py",
line 87, in MakeSyncCall
method(request, response)
File "C:\Program
Files\Google\google_appengine\google\appengine\api\urlfetch_stub.py",
line 207, in _Dynamic_Fetch
validate_certificate=validate_certificate)
File "C:\Program
Files\Google\google_appengine\google\appengine\api\urlfetch_stub.py",
line 294, in _RetrieveURL
escaped_payload = payload.encode('string_escape')
TypeError: escape_encode() argument 1 must be str, not unicode
anybody knows what should i do to troubleshoot this?
i use httplib module to make a connection and request.
Best regards,
Taufiq Sunar
--
You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en.