一、内容压缩
public static byte[] WriteGzip(string data)
{
byte[] buffer = Encoding.UTF8.GetBytes(data);
using (MemoryStream ms = new MemoryStream())
{
GZipStream gzipStream = new GZipStream(ms, CompressionMode.Compress);
gzipStream.Write(buffer, 0, buffer.Length);
gzipStream.Close();
return ms.ToArray();
}
}
二、发送请求
class HttpData
{
public bool Success { get; set; } = true;
public string Result { get; set; }
}
public static async Task<HttpData> PostAsync(string url, int timeout,byte[] data)
{
var httpData = new HttpData();
HttpWebRequest request = null;
HttpWebResponse response = null;
try
{
request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "text/plain";
request.ContentLength=data.Length;
request.Timeout = timeout;
request.KeepAlive = false;
using (Stream stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
response = (HttpWebResponse)await request.GetResponseAsync();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
httpData.Result = reader.ReadToEnd();
}
}
catch (Exception ex)
{
httpData.Success = false;
httpData.Result = ex.Message;
}
finally
{
if (response != null) response.Close();
if (request != null) request.Abort();
}
return httpData;
}