【问题标题】:Receiving a Http Post request on my server在我的服务器上接收 Http Post 请求
【发布时间】:2013-07-19 01:57:32
【问题描述】:

我正在尝试制作一个 asmx 文件(用 c# 编写),它将接收来自另一个服务的 POST 请求,在本例中为 Trello。但是我相信我在接收“JSON 有效负载”时遇到了问题。 Trello 正在创建请求,所以我不确切知道他们的代码是什么样的。我用来接收请求的代码格式如下:

[WebMethod]
public string TrelloCallback()
{
    //connect to database
    //do stuff
    //return "OK"
}

但是,即使我的代码仅包含“返回 OK”,这也会立即失败。我使用过 Postman (https://chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm?hl=en) 等应用程序,并已使用网址 excample.com/excample2.asmx/TrelloCallback 成功向 TrelloCallback 发送了 post 和 get 请求,但是来自 Trello 的请求根本失败。

如果有人知道可能导致此问题的原因,或者有解决方法的解决方案,我将不胜感激。

附言 有效载荷的形式为:

{
  action: { ...  }//Action (comment, move)
  model: { ... }//Basic information 
}

【问题讨论】:

    标签: asmx webmethod webhooks trello


    【解决方案1】:

    首先,您必须确保您有 ScriptService 行

    namespace MyName
    {
        ...
            [ScriptService]
        ...
        public class MyClass: MyWebService
        {
        ...
    

    那么你只需要通读stream就可以得到Body

    StreamReader reader = new StreamReader(Context.Request.InputStream);
    Context.Request.InputStream.Position = 0;
    String Body= reader.ReadToEnd().ToString();
    

    Context.Request.XXX 提供了许多有用的消息,用于互操作您收到的请求。

    例如 - Context.Request.Headers、Context.Request.RawUrl 和 Context.Request.HttpMethod。

    【讨论】:

    • 这是我在 ASMX 服务中使用的方法。它允许您捕获发布的 XML/JSON 数据,然后您可以尝试使用 XmlSerializer 将数据序列化到您的对象中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 2016-11-14
    • 1970-01-01
    • 2020-07-28
    相关资源
    最近更新 更多