我正在尝试制作一个asmx文件(用c#编写),它将从另一个服务接收POST请求,在本例中为Trello。但是我相信我在收到'JSON有效载荷'时遇到了麻烦。 Trello正在创建请求,因此我不确切知道他们的代码是什么样的。我用来接收请求的代码格式如下:
[WebMethod]
public string TrelloCallback()
{
//connect to database
//do stuff
//return "OK"
}
然而,即使我的代码只包含“return OK”,这也会立即失败。我使用了Postman(https://chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm?hl=en)之类的应用程序,并使用url excample.com/excample2.asmx/TrelloCallback成功向TrelloCallback发送了post和get请求,但Trello的请求只是失败了。
如果有人知道可能导致此问题的原因,或者有解决方法,我将非常感激。
P.S。 有效载荷的格式为:
{
action: { ... }//Action (comment, move)
model: { ... }//Basic information
}
答案 0 :(得分:3)
首先,您必须确保拥有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。