我需要“WinForm”应用程序在 viber 中进行通信。
“Webhook”计划从viber接收数据(事件),然后数据将在应用程序“WinForm”中使用。
我做了:
- 创建项目“ASP.NET Web 应用程序(.NET Framework)”;
- 选择了一个模板——“空”+“MVC”+“API”;
- 添加了控制器“控制器 MVC 5 - 空”。控制器名称“HookController”;
- 我运行应用程序“邮递员”;
- “邮差”。我将请求设置为“POST”;
- “邮差”。我设置了链接
http://localhost:44836/Hook
; - “邮差”。点击“发送”;
- 结果,见图“- = RESULT = -”;
如果我正确理解了理论,那么在执行之后"Postman" action. I click "SEND"
,该ViberProcess (HttpContext context)
方法应该在HookController.cs
控制器中执行并且代码应该停止在breakpoint
.
这没有发生。
文档Viber REST API
-链接
问题。
如何制作 Webhook?
代码HookController.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
//
using System.Runtime.Remoting.Contexts;
namespace WebAppl1.Controllers
{
public class HookController : Controller
{
// GET: Hook
//public ActionResult Index()
//{
// return View();
//}
[HttpPost]
// [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void ViberProcess(HttpContext context)
{
try
{
Stream s = context.Request.InputStream;
// Stream s = Context.Request.InputStream;
// or Stream s = HttpContext.Current.Request.InputStream;
s.Position = 0;
StreamReader reader = new StreamReader(s);
string jsonText = reader.ReadToEnd();
// Other code that converts json text to classes
}
catch (Exception e)
{
// .....
}
}
}
}
8. The result, see the picture "- = RESULT = -";
Server error in application '/'.
Could not find this resource.
Description: HTTP 404. The resource (or one of its dependencies) may have been deleted, received a different name, or may be temporarily unavailable. Review the following URL and verify that it is correct.
Requested URL: / Hook
Version Information: Microsoft .NET Framework Version 4.0.30319; ASP.NET version: 4.7.3062.0
Update_1
我使用链接http://localhost:44836/api/Hook
代码不会停在breakpoint
.
结果:
{
"Message": "Could not find the HTTP resource corresponding to the request URI \" http://localhost:44836/api/Hook\ ".",
"MessageDetail": "Could not find the type corresponding to the controller \" Hook \ " . "
}
我使用链接http://localhost:44836/Hook/ViberProcess
代码不会停在breakpoint
.
结果
Server error in application '/'.
For this object, no parameterless constructors are defined.
Description: An unhandled exception occurred during the execution of the current web request.
Examine the stack trace for more information about this error and the code snippet that caused it.
Exception Details: System.MissingMethodException: No parameter-less constructors are defined for this object.
Source Error:
An unhandled exception occurred during the execution of the current web request.
Information on the origin and location of the exception can be obtained using the following exception stack trace.