我需要使用 StreamSend API 来发送电子邮件,这里是流发送 API 参考
我正在使用适当的凭据将网络请求作为帖子发送到以下URL
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>");