好的,我正在与第三方 Web API 合作,该 API 使用 Web 挂钩在“发生某事”时进行通信。当他们“发生某事”时,他们会向我的回调 URL 发送一个 POST 请求。
我的问题是,一旦我抓住了那个 POST,如何从中提取参数?
我正在尝试构建一个集成测试场景,在其中调用我自己的回调 URL 并附加参数,这样我就不必经历“我怎样才能让他们的回调击中我的开发机器”例程!
这是我试图模拟的方式,但不确定这是对我的回调 URL 的调用可能是什么样子的真实表示:
[Test]
public void {
const string localCallbackUrl = "http://localhost/callback/callbackaction";
HttpWebRequest request = WebRequest.Create(localCallbackUrl) as HttpWebRequest;
request.Method = "POST";
request.ContentType = "application/x-www.form-urlencoded";
request.Accept = "application/json";
string parameters = string.Format("param1={0}¶m2={1}, "foo", "bar");
byte[] byteArray = Encoding.UTF8.GetBytes(parameters);
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
var response = request.GetResponse();
}
对“GetResponse()”的调用正在访问我的回调 URL,但我找不到参数在请求对象上的位置。
注意:我构建请求的方式与构建它以调用 API 的方式相同,但不能 100% 确定这是正确的。