public class HttpHelper
{
/// <summary>
/// HTTP Post
/// </summary>
/// <param name="Url"></param>
/// <param name="postDataStr">json格式的数据</param>
/// <returns></returns>
public static string HttpPost(string Url, string postDataStr)
{
WebRequest request = WebRequest.Create(Url);
request.Method = "POST";
request.ContentType = "application/json";
byte[] buf = Encoding.UTF8.GetBytes(postDataStr);
byte[] byteArray = System.Text.Encoding.Default.GetBytes(postDataStr);
request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);
request.GetRequestStream().Write(buf, 0, buf.Length);
WebResponse response = request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return retString;
}
/// <summary>
/// HTTP Get
/// </summary>
/// <param name="Url"></param>
/// <returns></returns>
public static string HttpGet(string Url)
{
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(Url);
httpWebRequest.Method = "GET";
httpWebRequest.ContentType = "text/html;charset=UTF-8";
string text = "";
using (WebResponse response = httpWebRequest.GetResponse())
{
Stream responseStream = response.GetResponseStream();
byte[] array = new byte[40960];
for (; ; )
{
int num = responseStream.Read(array, 0, array.Length);
bool flag = num <= 0;
if (flag)
{
break;
}
text += Encoding.UTF8.GetString(array, 0, num);
}
}
return text;
}
/// <summary>
/// 将数据及图片信息上传到服务器
/// </summary>
/// <param name="url"></param>
/// <param name="filePath"></param>
/// <param name="data">json格式的数据</param>
public static async Task<string> HttpPostImage(string url, string filePath, string data)
{
filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, filePath);
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, url);
var content = new MultipartFormDataContent();
content.Add(new StreamContent(File.OpenRead(filePath)), "file", filePath);
content.Add(new StringContent(data), "data");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}
}
该方法包含Http中的Get请求 Post请求,可以非常方便的使用