Отправка URL-адреса в GET-запросе на сервер Python в Google App Engine

Я написал очень простой сервер на Python на движке Google Apps. Я хочу иметь возможность отправить ему команду через GET-запрос, такой как "http://myserver.appspot.com/?do=http://webpage.com/?secondary=parameter"

Это не работает, так как дополнительный параметр интерпретируется отдельно и также отправляется в мое приложение. Любая помощь?

1 ответ

Решение

URL http://myserver.appspot.com/?do=http://webpage.com/?secondary=parameter неправильно сформирован. Возможно, вы можете urlencode строковые данные, а затем отправить его

from urllib import urlencode
data = {"do": "http://webpage.com/?secondary=parameter"}
encoded_data = urlencode(data)
url = "http://myserver.appspot.com/?" + encoded_data

Дает вывод

>>> print url
http://myserver.appspot.com/?do=http%3A%2F%2Fwebpage.com%2F%3Fsecondary%3Dparameter

В качестве альтернативы, если вы используете Python requests модуль, вы можете сделать

import requests
payload = {"do": "http://webpage.com/?secondary=parameter"}
r = requests.get("http://myserver.appspot.com/", params=payload)

который дает вывод

>>> print r.url
u'http://myserver.appspot.com/?do=http%3A%2F%2Fwebpage.com%2F%3Fsecondary%3Dparameter'
Другие вопросы по тегам