使用HttpWebRequest 进行提交
using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Net;
using System.Net.NetworkInformation;
using System.Runtime.InteropServices;
using System.Text;
using Tool.Util;
namespace Tool.POST
{
public class HttpPost
{
/// <summary>
///
/// </summary>
/// <param name="url">url</param>
/// <param name="postString">提交数据</param>
/// <returns></returns>
public string Post(string url, string postString)
{
if (!isNetConnectOK())
return "";
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(AppConfig.POSTHOST + url);
request.CookieContainer = new CookieContainer();
CookieContainer cookie = request.CookieContainer;
request.ContentType = AppConfig.CONTENTTYPE;//
request.Method = "POST";
byte[] postData = Encoding.UTF8.GetBytes(postString);
request.ContentLength = postData.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(postData, 0, postData.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
if (response.Headers["Content-Encoding"] != null && response.Headers["Content-Encoding"].ToLower().Contains("gzip"))
{
responseStream = new GZipStream(responseStream, CompressionMode.Decompress);
}
StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);
string retString = streamReader.ReadToEnd();
streamReader.Close();
responseStream.Close();
return retString;
}
catch (Exception e)
{
return "";
}
}
public string HttpGet(string url, string urlData = "", string postDataStr = "")
{
if (!isNetConnectOK())
return "";
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(AppConfig.POSTHOST + url + urlData + (postDataStr == "" ? "" : "?") + postDataStr);
request.Method = "GET";
request.ContentType = AppConfig.CONTENTTYPE;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
if (response.Headers["Content-Encoding"] != null && response.Headers["Content-Encoding"].ToLower().Contains("gzip"))
{
responseStream = new GZipStream(responseStream, CompressionMode.Decompress);
}
StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);
string retString = streamReader.ReadToEnd();
streamReader.Close();
responseStream.Close();
return retString;
}
catch (Exception e)
{
return "";
}
}
public string PostString(params string[] valueKey)
{
string postString = "";
int count = valueKey.Length;
if (count % 2 != 0)
{
return "";
}
for (int i = 0; i < count; i++)
{
string item = valueKey[i];
if (item == null || item == "")
{
item = " ";
}
postString += item;
if (i != count - 1)
{
if (i % 2 == 0)
{
postString += "=";
}
else
{
postString += "&";
}
}
}
return postString;
}
/// <summary>
/// 测试主机是否可以连接
/// </summary>
/// <returns></returns>
public bool isNetConnectOK()
{
Ping pingSender=new Ping();
PingReply reply = pingSender.Send(AppConfig.POSTHOST.Replace("http://", "").Replace("/", ""), 120);
if (reply.Status == IPStatus.Success)
return true;
else
return false;
}
}
}