3

我正在尝试制作一个 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),并使用 URL 示例成功地向 TrelloCallback 发送了 post 和 get 请求。 com/excample2.asmx/TrelloCallback,但是来自 Trello 的请求根本失败。

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

ps 有效载荷的形式为:

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

1 回答 1

4

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

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

然后你只需要通读流就可以得到 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。

于 2013-07-24T17:26:01.850 回答