//////////////////////////////////////////////////////////////////////////
var url = "XXX";
var cellphone = "xxx";
var msg = "{"identys":["" + cellphone + ""],"title":通知","msg":"测试一下"}";
var msgbt = System.Text.Encoding.UTF8.GetBytes(msg);
var msg64 = Convert.ToBase64String(msgbt);
PostUtils post = new PostUtils();
Dictionary<string, string> formdata = new Dictionary<string, string>();
formdata.Add("queuename", "ydztMsg");
formdata.Add("msg", msg64);
post.PostFormData(url, formdata, (r, m) => {
Console.WriteLine($"{r}---{m}");
});
////////////////////////////////////////////////////////////////////
public class PostUtils
{
public PostUtils()
{
}
/// <summary>
///
/// </summary>
/// <param name="url"></param>
/// <param name="formDatas"></param>
/// <param name="PostComplete">请求完成</param>
public void PostFormData(string url,Dictionary<string,string> formDatas, Action<bool,string> PostComplete)
{
var result = true;
var msg = "";
try
{
byte[] buffer = new byte[1024 * 1000];//缓冲区
var request = WebRequest.Create(url) as HttpWebRequest;
request.Method = "POST";
var boundary = "----" + DateTime.Now.Ticks.ToString("x");
request.ContentType = "multipart/form-data; boundary=----" + boundary;
string msgreq = string.Empty;
foreach (KeyValuePair<string, string> kv in formDatas)
{
msgreq += $"------{ boundary}
Content-Disposition: form-data; name ="{kv.Key}"
{kv.Value}
";
}
msgreq += $"
------{ boundary }----";
var data = Encoding.UTF8.GetBytes(msgreq);
request.ContentLength = data.Length;
using (var writer = request.GetRequestStream())
{
writer.Write(data, 0, data.Length);
}
using (var response = request.GetResponse() as HttpWebResponse)
{
using (var responseStream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(responseStream, Encoding.UTF8))
{
msg = reader.ReadToEnd();
}
}
}
}
catch(Exception e)
{
result = false;
msg = e.Message;
}
finally
{
PostComplete?.Invoke(result, msg);
}
}
}
from-data格式太麻烦了。