using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
/// <summary>
/// RequestHelper 的摘要说明
/// </summary>
public class RequestHelper
{
//发送get请求
public static string sendGet(string url)
{
MemoryStream content = new MemoryStream();
// 对url发起一个Web请求
HttpWebRequest webRequest = WebRequest.Create(url) as HttpWebRequest;
if (webRequest != null)
{
// 返回回复结果
using (WebResponse response = webRequest.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(responseStream))
{
return reader.ReadToEnd();
}
}
}
}
return "";
}
//发送post请求
public static string sendPost(string url, string data)
{
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
Encoding encoding = Encoding.UTF8;
string param = data;
//encoding.GetBytes(postData);
byte[] bs = encoding.GetBytes(data); //Encoding.ASCII.GetBytes(param);
string responseData = String.Empty;
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = bs.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(bs, 0, bs.Length);
reqStream.Close();
}
using (HttpWebResponse response = (HttpWebResponse)req.GetResponse())
{
using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
{
responseData = reader.ReadToEnd().ToString();
return responseData;
}
}
}
//上传文件
public static String uploadFile(String url, byte[] file, String contenttype, String filename)
{
byte[] buffer = file;
string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x");
//请求
WebRequest req = WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "multipart/form-data; boundary=" + boundary;
//组织表单数据
StringBuilder sb = new StringBuilder();
sb.Append("--" + boundary + "\r\n");
sb.Append("Content-Disposition: form-data; name=\"media\"; filename=\"" + filename + "\"; filelength=\"" + buffer.Length + "\"");
sb.Append("\r\n");
sb.Append("Content-Type: " + contenttype);
sb.Append("\r\n\r\n");
string head = sb.ToString();
byte[] form_data = Encoding.UTF8.GetBytes(head);
//结尾
byte[] foot_data = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n");
//post总长度
long length = form_data.Length + buffer.Length + foot_data.Length;
req.ContentLength = length;
Stream requestStream = req.GetRequestStream();
//这里要注意一下发送顺序,先发送form_data > buffer > foot_data
//发送表单参数
requestStream.Write(form_data, 0, form_data.Length);
//发送文件内容
requestStream.Write(buffer, 0, buffer.Length);
//结尾
requestStream.Write(foot_data, 0, foot_data.Length);
requestStream.Flush();
requestStream.Close();
//响应
WebResponse pos = req.GetResponse();
StreamReader sr = new StreamReader(pos.GetResponseStream(), Encoding.UTF8);
string result = sr.ReadToEnd().Trim();
sr.Close();
sr.Dispose();
if (pos != null)
{
pos.Close();
pos = null;
}
if (req != null)
{
req = null;
}
return result;
}
}
以上代码大部分来自网络,未记载出处。
处理过程大概如下:
(1)用HttpWebRequest模拟http请求。
HttpWebRequest webRequest = WebRequest.Create(url) as HttpWebRequest;
(2)用WebResponse 接收返回结果
WebResponse response = webRequest.GetResponse()