此处内容传输都是用UTF-8编码
1.不带参数发送Post请求
- /// <summary>
- /// 指定Post地址使用Get 方式获取全部字符串
- /// </summary>
- /// <param name="url">请求后台地址</param>
- /// <returns></returns>
- public static string Post(string url)
- {
- string result = "";
- HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
- req.Method = "POST";
- HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
- Stream stream = resp.GetResponseStream();
- //获取内容
- using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
- {
- result = reader.ReadToEnd();
- }
- return result;
- }
2.带参数Post请求,指定键值对
- /// <summary>
- /// 指定Post地址使用Get 方式获取全部字符串
- /// </summary>
- /// <param name="url">请求后台地址</param>
- /// <returns></returns>
- public static string Post(string url,Dictionary<string,string> dic)
- {
- string result = "";
- HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
- req.Method = "POST";
- req.ContentType = "application/x-www-form-urlencoded";
- #region 添加Post 参数
- StringBuilder builder = new StringBuilder();
- int i = 0;
- foreach (var item in dic)
- {
- if (i > 0)
- builder.Append("&");
- builder.AppendFormat("{0}={1}", item.Key, item.Value);
- i++;
- }
- byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
- req.ContentLength = data.Length;
- using (Stream reqStream = req.GetRequestStream())
- {
- reqStream.Write(data, 0, data.Length);
- reqStream.Close();
- }
- #endregion
- HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
- Stream stream = resp.GetResponseStream();
- //获取响应内容
- using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
- {
- result = reader.ReadToEnd();
- }
- return result;
- }
3.带参数的Post请求,指定发送字符串内容
- /// <summary>
- /// 指定Post地址使用Get 方式获取全部字符串
- /// </summary>
- /// <param name="url">请求后台地址</param>
- /// <param name="content">Post提交数据内容(utf-8编码的)</param>
- /// <returns></returns>
- public static string Post(string url, string content)
- {
- string result = "";
- HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
- req.Method = "POST";
- req.ContentType = "application/x-www-form-urlencoded";
-
- #region 添加Post 参数
- byte[] data = Encoding.UTF8.GetBytes(content);
- req.ContentLength = data.Length;
- using (Stream reqStream = req.GetRequestStream())
- {
- reqStream.Write(data, 0, data.Length);
- reqStream.Close();
- }
- #endregion
-
- HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
- Stream stream = resp.GetResponseStream();
- //获取响应内容
- using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
- {
- result = reader.ReadToEnd();
- }
- return result;
- }
转载方法:
- HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://fanyi.baidu.com/transcontent");
- Encoding encoding = Encoding.UTF8;
- string param = "ie=utf-8&source=txt&query=hello&t=1327829764203&token=8a7dcbacb3ed72cad9f3fb079809a127&from=auto&to=auto";
- //encoding.GetBytes(postData);
- byte[] bs = 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();
- }
- context.Response.Write(responseData);
- }