public class WebTool
{
#region GET请求
/// <summary>
/// GET请求
/// </summary>
/// <param name="strURL"></param>
/// <param name="sMsg"></param>
/// <returns></returns>
public static bool SendMsgByHttpGet(string strURL, out string sMsg)
{
bool flag = false;
System.GC.Collect();
HttpWebRequest request = null;
HttpWebResponse response = null;
try
{
request = (HttpWebRequest)WebRequest.Create(strURL);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
sMsg = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
int i = sMsg.IndexOf("<!DOCTYPE");
if (i > 0)
{
sMsg = sMsg.Substring(0, i);
}
flag = true;
}
catch (System.Threading.ThreadAbortException e)
{
sMsg = e.Message;
System.Threading.Thread.ResetAbort();
flag = false;
}
catch (WebException e)
{
flag = false;
sMsg = e.Message;
try
{
HttpWebResponse res = (HttpWebResponse)e.Response;
if (res != null)
{
StreamReader sr = new StreamReader(res.GetResponseStream());
sMsg = sr.ReadToEnd();
sr.Close();
}
//LogHelper.LogWrite.WriteLogs("http_get error", "0", sMsg, "", strURL);
}
catch { }
}
catch (Exception ex)
{
sMsg = ex.Message;
flag = false;
}
finally
{
//关闭连接和流
if (response != null)
{
response.Close();
}
if (request != null)
{
request.Abort();
}
}
return flag;
}
#endregion
#region POST请求
/// <summary>
/// POST请求
/// </summary>
/// <param name="url">地址</param>
/// <param name="param">发送参数 格式:参数名=参数&参数名=参数;如param1=111¶m2=222</param>
/// <returns></returns>
public static bool SendMsgByHttpPost(string url, string param, out string sResult)
{
bool flag = false;
try
{
//转换输入参数的编码类型,获取bytep[]数组
byte[] byteArray = Encoding.UTF8.GetBytes(param);
//初始化新的webRequst
//1. 创建httpWebRequest对象
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(url));
//2. 初始化HttpWebRequest对象
webRequest.Method = "POST";
//webRequest.ContentType = "text/html";//application/x-www-form-urlencoded
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = byteArray.Length;
//3. 附加要POST给服务器的数据到HttpWebRequest对象(附加POST数据的过程比较特殊,它并没有提供一个属性给用户存取,需要写入HttpWebRequest对象提供的一个stream里面。)
Stream newStream = webRequest.GetRequestStream();//创建一个Stream,赋值是写入HttpWebRequest对象提供的一个stream里面
newStream.Write(byteArray, 0, byteArray.Length);
newStream.Close();
//4. 读取服务器的返回信息
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
StreamReader php = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string phpend = php.ReadToEnd();
sResult = phpend;
flag = true;
}
catch (WebException e)
{
sResult = e.Response.ToString();
flag = false;
}
catch (Exception ex)
{
sResult = ex.Message;
flag = false;
}
return flag;
}
#endregion
}
08-27
159
09-15
195
08-31