0

Campaign Monitor を使用して、Campaign Monitor Webhook 経由でサブスクリプションの更新を受信した人はいますか? json データを Web サイトのページに投稿するように Webhook を構成しましたが、コードがデータを受信すると、それは単なるゼロの集まりです。私のコードは次のとおりです。

System.IO.Stream stream = Request.InputStream;
        byte[] byteData = new byte[Convert.ToInt32(stream.Length)];
        int read = stream.Read(byteData, 0, Convert.ToInt32(stream.Length));
        string streamData = string.Empty;
        string somedata = System.Text.Encoding.ASCII.GetString(byteData).ToString();
        for (int i = 0; i < Convert.ToInt32(stream.Length); i++)
        {
            streamData = streamData + byteData[i].ToString();
        }

ページにデータを投稿しようとしましたが、うまくいきました。つまり、上記のコード (somedata) は、ページに投稿したものと同じテキスト値を返します。とてもイライラします....

アイデアはありますか?今夜はかなり毛が抜けました!!!

前もってありがとうアル

4

1 に答える 1

2

リクエストの本文は次のように読み取ることができます (Web フォーム アプリから)。

var reader = new StreamReader(Request.InputStream);
var json = reader.ReadToEnd();

ドキュメントでは、購読イベントに期待するデータが次の形式であることを指定しています。

{
    "Events": [
        {
            "CustomFields": [
                {
                    "Key": "website", 
                    "Value": "http:\/\/example.org"
                }
            ],
            "Date": "2010-12-14 11:32:00",
            "EmailAddress": "test@example.org",
            "Name": "Test Subscriber",
            "SignupIPAddress": "53.78.123.243",
            "Type": "Subscribe"
        }
    ],
    "ListID": "96c0bbdaa54760c8d9e62a2b7ffa2e13"
}

上記のサンプル データを使用して、POST リクエストを URL に送信することで、これを自分でテストできます。curl を使用した例を次に示します。

curl http://localhost:49681/receiver.aspx -v -X POST -d \
'{
    "Events": [
        {
            "CustomFields": [
                {
                    "Key": "website", 
                    "Value": "http:\/\/example.org"
                }
            ],
            "Date": "2010-12-14 11:32:00",
            "EmailAddress": "test@example.org",
            "Name": "Test Subscriber",
            "SignupIPAddress": "53.78.123.243",
            "Type": "Subscribe"
        }
    ],
    "ListID": "96c0bbdaa54760c8d9e62a2b7ffa2e13"
}'
于 2012-10-19T06:59:15.223 に答える