【问题标题】:REST API post using Twilio.MVC is not working. 404 error message with resource not found使用 Twilio.MVC 的 REST API 发布不起作用。找不到资源的 404 错误消息
【发布时间】:2013-08-01 03:03:10
【问题描述】:

我在这段代码中做错了什么?当我向此 API 发送 POST 请求时,我得到 404 错误页面。有人可以帮我调试这段代码。 Rest 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 }
        );
    }

【问题讨论】:

    标签: rest http-post twilio


    【解决方案1】:

    Twilio 布道者在这里。

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

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

    public TwiMLResult ActionResult(SmsRequest request)
    

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

    http://[yourdomain]/Home/ActionResult
    

    如果更改方法的名称:

    public ActionResult Sms(SmsRequest request)
    

    那么您的网址将是:

    http://[yourdomain]/Home/Sms
    

    我注意到的其他几件事:

    • 如果您使用 TwiML() 辅助方法返回响应,则无需自己设置 ContentType。该方法将为您解决问题。
    • 不确定您为什么要告诉 Twilio 重定向到 Google。您可能想查看<Redirect> 的文档

    希望对您有所帮助。

    【讨论】:

    • @Devid Rader - 谢谢。让我试试看。
    猜你喜欢
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    • 2019-10-14
    • 2019-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多