C# StreamSend API Blast,发送电子邮件

C# StreamSend API Blast,发送电子邮件,c#,api,httpwebrequest,httpwebresponse,C#,Api,Httpwebrequest,Httpwebresponse,我需要使用StreamSend API发送电子邮件,这里是 我正在通过适当的凭证向以下URL发送web请求 StringBuilder sb=新建StringBuilder(); 某人附加(”https://app.streamsend.com/audiences/2/blasts.xml"); Uri=新Uri(sb.ToString()); HttpWebRequest-request=WebRequest.Create(uri)为HttpWebRequest; request.Cont

我需要使用StreamSend API发送电子邮件,这里是

我正在通过适当的凭证向以下URL发送web请求

StringBuilder sb=新建StringBuilder();
某人附加(”https://app.streamsend.com/audiences/2/blasts.xml");
Uri=新Uri(sb.ToString());
HttpWebRequest-request=WebRequest.Create(uri)为HttpWebRequest;
request.ContentType=“应用程序/xml”;
StringBuilder strMail=新的StringBuilder();
strMail.Append(“全部来自api…”);
byte[]data=Encoding.ASCII.GetBytes(strMail.ToString());
流输入=request.GetRequestStream();
输入.写入(数据,0,数据.长度);
input.Close();
HttpWebResponse nsResponse=(HttpWebResponse)请求。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(“全部来自api…”);

@Jim我已经做了凭证和输入数据。问题是错误#500422您没有在代码示例中显示凭据,也没有显示您正在执行POST请求。无论如何,根据您链接的文档,422表示您提供的数据无效。它说,500是StreamSend应用程序的一个问题。您是否正在检查422返回的数据以查看错误是什么?
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>");