StreamSend API爆炸,发送电子邮件
问题描述:
我需要使用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.我将不胜感激任何帮助。
答
一些事情。首先,它看起来像是在尝试执行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>");
@Jim我已经做了证书和输入数据。问题是错误#500,422 – user759659 2011-05-18 19:50:13
您没有在代码示例中显示凭据,也没有显示您正在执行POST请求。无论如何,根据您链接的文档,422意味着您提供了无效数据。它说,500是StreamSend应用程序的问题。你是否检查422的返回数据以查看错误是什么? – 2011-05-18 20:21:58