2012-10-18 46 views
0

是否有人使用Campaign Monitor通過Campaign Monitor webhooks接收訂閱更新?我已經配置webhook將json數據發佈到我們網站上的頁面,但是當我的代碼收到數據時,它只是一堆零。我的代碼如下:通過.NET的Campaign Monitor API

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)返回我貼到網頁上使用相同的文字值。非常沮喪......

任何想法的人?今晚我已經失去了很多頭髮!

在此先感謝 鋁

回答

2

可以讀取請求的身體(從web表單應用程序)如下:

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

docs specify,你期待着人們訂閱事件的數據形式如下:

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

您可以通過使用上述示例數據向您的URL提交POST請求來自己測試。以下是使用捲曲的示例:

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": "[email protected]", 
      "Name": "Test Subscriber", 
      "SignupIPAddress": "53.78.123.243", 
      "Type": "Subscribe" 
     } 
    ], 
    "ListID": "96c0bbdaa54760c8d9e62a2b7ffa2e13" 
}' 
相關問題