2013-05-28 2 views
3

Я устанавливаю двухстороннюю службу SMS.Перенаправление на другой URL-адрес в Pyramid?

Пользователь отправляет СМС на виртуальный номер, предоставляемый платформой сервера SMS (www.sms.com). Эта платформа SMS-сервера будет передавать пользовательские данные SMS на мой мой url (http://www.yourdomainname.com/ReceiveSMS?from=from&message=message)

Теперь я обрабатываю запрос пользователя на основе «сообщения», а затем мне нужно отправить ответ на этот URL-адрес (www.sms.com/ optin.php? пользователя = имя пользователя & передача = пароль & к = to_mobile_number & сообщение = dynamic_message)

Мой вопрос, как я могу отправить его на URL-адрес www.sms.com/optin.php?user=username & проход = пароль & to = to_mobile_number & message = dynamic_message после обработки.

Один из способов, которым я думал, - это использовать HTTPFound.

Хотел бы узнать, есть ли более эффективный способ?

+0

Ваша терминология трудно разобрать. Вам нужно перенаправить пользователя на этот URL-адрес, или вам нужно поговорить с этим URL-адресом в фоновом режиме? Вы не можете «отправить» в перенаправление, так что вы не поняли. –

ответ

1

Requests действительно хорош для отправки POST запросов

>>> message = 'hello!' # From your inbound SMS 
>>> data = { 
    'user': 'username', 
    'pass': 'password', 
    'message': message, 
    'to': '123456789' 
} 
>>> r = requests.post("www.sms.com/optin.php", params=data) 
+0

Спасибо Алекс за ответ на мой вопрос. Но здесь запрос с сервера SMS появится на мой взгляд и после просмотра обработал запрос, ответ будет отправлен на «www.sms.com/optin.php». Просто не уверен, как это сделать с помощью Pyramid –

2

в представлениях пирамиды, вы можете вернуть webob ответ на шаг в сторону какой-либо визуализации логики. Поэтому для перенаправления вы устанавливаете статус 301/302 и location header.

from webob import Response 

@view_config(...) 
def your_view(context, request): 
    # do stuff 
    return Response(status_int=302, location="http://goherenext.com") 

HTTPFound просто подкласс ответа с status hard-coded.

Смежные вопросы