2011-05-18 49 views
0

我需要使用StreamSend API發送電子郵件,這裏是 StreamSend API ReferenceStreamSend API爆炸,發送電子郵件

我提出Web請求作爲後到以下網址與正確的憑據

https://app.streamsend.com/audiences/2/blasts.xml

StringBuilder sb = new StringBuilder(); 
      sb.Append("https://app.streamsend.com/audiences/2/blasts.xml"); 
      Uri uri = new Uri(sb.ToString()); 
      HttpWebRequest request = WebRequest.Create(uri) as HttpWebRequest; 
      request.ContentType = "application/xml"; 

      StringBuilder strMail= new StringBuilder(); 
      strMail.Append("<blast> ALL from api..... </blast>"); 

     byte[] data = Encoding.ASCII.GetBytes(strMail.ToString()); 
     Stream input = request.GetRequestStream(); 
     input.Write(data, 0, data.Length); 
     input.Close(); 
     HttpWebResponse nsResponse = (HttpWebResponse)request.GetResponse(); 

我有錯誤#422或500.我將不勝感激任何幫助。

+0

@Jim我已經做了證書和輸入數據。問題是錯誤#500,422 – user759659 2011-05-18 19:50:13

+0

您沒有在代碼示例中顯示憑據,也沒有顯示您正在執行POST請求。無論如何,根據您鏈接的文檔,422意味着您提供了無效數據。它說,500是StreamSend應用程序的問題。你是否檢查422的返回數據以查看錯誤是什麼? – 2011-05-18 20:21:58

回答

0

一些事情。首先,它看起來像是在嘗試執行POST請求(您正在請求流中發送數據)。如果你真的想要一個POST請求,你必須設置request.Method = "POST";

另外,如果你想要一個XML響應,你需要設置Accept頭。根據您列出的文檔,您需要:request.Accept = "application/xml";

而且您還需要將登錄ID添加到請求中。我不確定這是如何完成的。也許在request.Credentials屬性是這樣的:

request.Credentials = new NetworkCredential("login_id", "your_key_here"); 

最後,沒有理由使用StringBuilder如果你正在做的是指定的字符串。你可以寫,例如:

string urlString = "https://app.streamsend.com/audiences/2/blasts.xml" 
Uri uri = new Uri(urlString); 

byte[] data = Encoding.ASCII.GetBytes("<blast> ALL from api..... </blast>");