您的位置:首页 > 理论基础 > 计算机网络

【原创】C#使用HttpWebRequest,HttpWebResponse

2012-02-22 13:32 633 查看
HttpWebRequest类:提供WebRequest类的Http特定的实现。HttpWebRequest 类对 WebRequest 中定义的属性和方法提供支持,也对使用户能够直接与使用 HTTP 的服务器交互的附加属性和方法提供支持。

/// <summary>
/// 创建 HttpWebRequest
/// </summary>
/// <returns>HttpWebRequest</returns>
public HttpWebRequest Create(string url,string name,string password)
{

//创建HttpWebRequest 实例,使用WebRequest.Create
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
//发送请求
webRequest.Method = "POST";
//编码
webRequest.ContentType = "text/xml;charset=UTF-8";
//访问凭证
webRequest.Credentials = new NetworkCredential(name, password);
//设置代理,如不需要代理,以下代码不需要
string Isproxy = "代理ip";
string proxyName = “代理访问用户”;
string proxyPassword = “代理访问密码”;
if (!string.IsNullOrEmpty(Isproxy))
{
WebProxy myProxy = new WebProxy(Isproxy , true);
myProxy.Credentials = new NetworkCredential(proxyName , proxyPassword , "ip");
webRequest.Proxy = Isproxy ;
}
return webRequest;
}

提示:HttpWebRequest对象有一些相关设置属性,如Method(发送方式),TimeOut(请求超时时间),ContentType(Http标头的值)等等。不要使用构造函数创建HttpWebRequest实例,应使用WebRequest.Create(URI uriString)来创建实例,如果URI是Http://或Https://, 返回的是HttpWebRequest对象。(建立请求特定URI的对象) 当向资源发送数据时,GetRequestStream方法返回用于发送数据的Stream对象。

/// <summary>
/// <param name="value">发送数据</param>
/// </summary>
/// <returns>返回数据</returns>
public string ResponseXML(string url,string name,string password,string value)
{
string result = "";
//创建服务
HttpWebRequest webRequest = Create(url,name,password);
//字符转字节
byte[] bytes = Encoding.UTF8.GetBytes(value);
Stream writer = webRequest.GetRequestStream();
writer.Write(bytes, 0, bytes.Length);
writer.Flush();
writer.Close();
//返回 HttpWebResponse
HttpWebResponse hwRes= webRequest.GetResponse() as HttpWebResponse;
if (hwRes.StatusCode == System.Net.HttpStatusCode.OK)
{//是否返回成功
Stream rStream = hwRes.GetResponseStream();
//流读取
StreamReader sr = new StreamReader(rStream, Encoding.UTF8);
result = sr.ReadToEnd();
sr.Close();
rStream.Close();
}
else
{
result = "连接错误";
}

//关闭
hwRes.Close();
return result;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: