使用Twilio.MVC的REST API帖子不起作用。 404找不到资源的错误消息

时间:2013-08-01 03:03:11

标签: rest http-post twilio

我在这段代码中做错了什么?当我向此API发送POST请求时,我会收到404错误页面。有人可以帮我调试这段代码。休息Api和Twilio的新手。

using System.Web.Mvc;
using Twilio.TwiML.Mvc;
using Twilio.Mvc;

namespace MVC4Test.Controllers
{
   public class HomeController : TwilioController
   {
      [HttpPost]
      public TwiMLResult ActionResult(SmsRequest request)
      {
        string smsTextType  = request.Body;
        var response = new Twilio.TwiML.TwilioResponse();

        Response.ContentType = "text/xml";    
        response.Redirect("http://www.google.com");

        //Response.ContentEncoding = System.Text.Encoding.UTF8;    
        //Response.Write(smsTest);    
        return TwiML(response);
        //Response.Close();

      }
   }
 }

这是我的路线

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id =  UrlParameter.Optional }
        );
    }

1 个答案:

答案 0 :(得分:1)

Twilio传道者在这里。

您可以发布您尝试加载的网址吗?

我的第一个猜测是你错误地命名了你的Action方法。现在是这个:

public TwiMLResult ActionResult(SmsRequest request)

这意味着您需要请求的网址是:

http://[yourdomain]/Home/ActionResult

如果您更改方法的名称:

public ActionResult Sms(SmsRequest request)

然后您的网址将是:

http://[yourdomain]/Home/Sms

我注意到的其他一些事情:

  • 如果您使用TwiML()帮助程序方法返回响应,则无需自行设置ContentType。那种方法可以帮到你。
  • 不确定为什么要告诉Twilio重定向到Google。您可能需要查看<Redirect>
  • 的文档

希望有所帮助。