/// 发生post请求
/// </summary>
/// <param name="Url"></param>
/// <param name="postDataStr"></param>
/// <returns></returns>
public static string HttpPost(string Url, string postDataStr)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);
Stream myRequestStream = request.GetRequestStream();
StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
myStreamWriter.Write(postDataStr);
myStreamWriter.Close();
HttpWebResponse response = (HttpWebResponse)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;
}
catch (Exception ex)
{
return ex.Message;
}
}
/// <summary>
/// 发生get请求
/// </summary>
/// <param name="Url"></param>
/// <param name="postDataStr"></param>
/// <returns></returns>
public static string HttpGet(string Url, string getDataStr)
{
//ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + (getDataStr == "" ? "" : "?") + getDataStr);
request.Method = "GET";
request.ContentType = "text/html;charset=utf-8";
HttpWebResponse response = (HttpWebResponse)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;
}
public static string sendHttp(string WebUrl, string CEncoding)
{
WebClient myClient = new WebClient();
myClient.Headers.Add("Accept: */*");
myClient.Headers.Add("User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET4.0E; .NET4.0C; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; SE 2.X MetaSr 1.0)");
myClient.Headers.Add("Accept-Language: zh-cn");
myClient.Headers.Add("Content-Type: multipart/form-data");
myClient.Headers.Add("Accept-Encoding: gzip, deflate");
myClient.Headers.Add("Cache-Control: no-cache");
return Encoding.GetEncoding(CEncoding).GetString(myClient.DownloadData(string.Format(WebUrl)));
}
public static string Call(string url)
{
string ret = "{\"ok\":101,\"msg\":\"net err\"}";
TcpClient clientSocket = null;
Stream readStream = null;
try
{
clientSocket = new TcpClient();
Uri uri = new Uri(url);
clientSocket.Connect(uri.Host, uri.Port);
StringBuilder RequestHeaders = new StringBuilder();//用来保存HTML协议头部信息
RequestHeaders.Append("GET ").Append(uri.PathAndQuery).Append(" HTTP/1.1\r\n");
RequestHeaders.Append("Host:").Append(uri.Host).Append("\r\n");
RequestHeaders.Append("User-Agent:ycweb\r\n"); // "Accept:*/*\r\nAccept-Language:zh-cn\r\n"
RequestHeaders.Append("Connection:close\r\n\r\n");
// 发送
byte[] request = Encoding.UTF8.GetBytes(RequestHeaders.ToString());
clientSocket.Client.Send(request);
// 接收
readStream = clientSocket.GetStream();
StreamReader sr = new StreamReader(readStream, Encoding.UTF8);
string l;
// 读取头
for (int i=0; i<100; ++i)
{
l = sr.ReadLine();
if (l == null)
break;
if (l.Length == 0)
break;
}
// 读取内容
ret = sr.ReadToEnd();
}catch
{
}
// 关闭流
if (readStream != null)
readStream.Close();
if (clientSocket != null)
clientSocket.Close();
return ret;
}
/// <summary>
/// 拟远程HTTP的POST请求方式构造并获取处理结果
/// </summary>
/// <param name="GATEWAY_NEW">支付宝网关地址</param>
/// <param name="sParaTemp">请求参数数组</param>
/// <returns>处理结果</returns>
public static string PostRequest(string url, string param,string encode)
{
Encoding code = Encoding.GetEncoding(encode);
//待请求参数数组字符串
string strRequestData =param;
//把数组转换成流中所需字节数组类型
byte[] bytesRequestData = code.GetBytes(strRequestData);
//构造请求地址
string strUrl = url;
//请求远程HTTP
string strResult = "";
try
{
//设置HttpWebRequest基本信息
HttpWebRequest myReq = (HttpWebRequest)HttpWebRequest.Create(strUrl);
myReq.Method = "post";
myReq.ContentType = "application/x-www-form-urlencoded";
//填充POST数据
myReq.ContentLength = bytesRequestData.Length;
Stream requestStream = myReq.GetRequestStream();
requestStream.Write(bytesRequestData, 0, bytesRequestData.Length);
requestStream.Close();
//发送POST数据请求服务器
HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse();
Stream myStream = HttpWResp.GetResponseStream();
//获取服务器返回信息
StreamReader reader = new StreamReader(myStream, code);
StringBuilder responseData = new StringBuilder();
String line;
while ((line = reader.ReadLine()) != null)
{
responseData.Append(line);
}
//释放
myStream.Close();
strResult = responseData.ToString();
}
catch (Exception exp)
{
strResult = "报错:" + exp.Message;
}
return strResult;
}