PostToolPlus.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using Azylee.YeahWeb.HttpUtils.MethodUtils.ExtendUtils;
  2. using Azylee.YeahWeb.HttpUtils.Models;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Net;
  8. using System.Text;
  9. namespace Azylee.YeahWeb.HttpUtils.MethodUtils.PostUtils
  10. {
  11. internal static class PostToolPlus
  12. {
  13. internal static string Post(string url, ref CookieCollection cookie, string data = null, Encoding encoding = null, Dictionary<string, string> headers = null, string contentType = HttpContentTypes.ApplicationXWwwFormUrlEncoded, bool autoRedirect = true, bool keepAlive = true, string userAgent = UserAgents.Mozilla4)
  14. {
  15. string html = "";
  16. Stream stream = null, dataStream = null;
  17. StreamReader reader = null;
  18. try
  19. {
  20. //配置属性
  21. HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
  22. request.Method = "POST";
  23. request.ContentType = contentType;
  24. request.AllowAutoRedirect = autoRedirect;
  25. request.KeepAlive = keepAlive;
  26. request.UserAgent = userAgent;
  27. request.CookieContainer = new CookieContainer();
  28. HeaderTool.Set(ref request, headers);
  29. if (cookie != null) request.CookieContainer.Add(cookie);
  30. //配置参数
  31. if (data != null)
  32. {
  33. byte[] dataByte = Encoding.UTF8.GetBytes(data);
  34. request.ContentLength = dataByte.Length;
  35. dataStream = request.GetRequestStream();
  36. dataStream.Write(dataByte, 0, dataByte.Length);
  37. }
  38. //请求数据
  39. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  40. response.Cookies = request.CookieContainer.GetCookies(request.RequestUri);
  41. cookie = response.Cookies;
  42. stream = response.GetResponseStream();
  43. reader = new StreamReader(stream, encoding ?? Encoding.Default);
  44. html = reader.ReadToEnd();
  45. }
  46. catch
  47. {
  48. }
  49. finally
  50. {
  51. if (reader != null) reader.Close();
  52. if (stream != null) stream.Close();
  53. if (dataStream != null) dataStream.Close();
  54. }
  55. return html;
  56. }
  57. }
  58. }