无法从http POST获得响应

时间:2013-01-03 23:55:50

标签: python iptables twilio

我正在尝试使用twilio自动为我打几个电话,但是我在使它正常工作时遇到了一些麻烦。我正在使用像这样的twilio打电话:

conn.calls.create(
    to = event.student.phone_number,
    from_ = event.message.teacher.twilio_number,
    url = '%stwilio_calls/%d/' % (BASE_URL, event.id))

我很确定这部分代码正在运行,因为我正在接收对我的单元的调用作为测试。但是,当我接到电话时,它告诉我存在应用程序错误。在Twilio调试面板中,我看到了:

http://i.stack.imgur.com/O3oJZ.png

看起来twilio没有得到我网站的回复。奇怪的是,我可以导航到URL(http://166.78.13.45:8000/twilio_calls/19/)并接收正确格式化的twiml。不知道为什么twilio无法捡起来。创建此页面的视图如下所示:

@csrf_exempt
def twilio_call(request, event_id):
    event = Event.objects.get(pk=event_id)

    t = template.Template(event.message.text)
    c = template.Context({'student': event.student})
    call_text = t.render(c)

    # TODO if student not found ?
    # TODO if student.objects.call_notification_ind if false?

    r = twiml.Response()
    r.say(call_text)

    return HttpResponse(str(r))

我需要做些什么才能让twilio阅读此页面?

2 个答案:

答案 0 :(得分:2)

通过测试URL,看起来如果您在POST正文中放置任何数据,则响应正文为空。

$ curl -iXPOST http://166.78.13.45:8000/twilio_calls/19/
HTTP/1.1 200 OK
Server: nginx/1.2.6
Date: Fri, 04 Jan 2013 00:20:45 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive

<?xml version="1.0" encoding="UTF-8"?><Response><Say>Hi Dan,

This is a very long test message for you to try out.  Let's see what you think of it.  Give it a shot!!!

Call me back if you have any questions</Say></Response>

但是,在请求中添加了CallSid参数:

$ curl -iXPOST http://166.78.13.45:8000/twilio_calls/19/ -d 'foo'
HTTP/1.1 200 OK
Server: nginx/1.2.6
Date: Fri, 04 Jan 2013 00:20:58 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive

没有身体。

答案 1 :(得分:0)

这真的很奇怪,我仍然不确定是什么导致了我的问题,但我确实有一个解决方案。在我的views.py文件中添加行print request似乎为此和我正在使用它的另一个区域修复了它。我只能想象我在这里做了别的错事,如果有人能帮助我弄清楚为什么会这样做以及如何在将来避免它,我会很高兴。