1. 首页 > 科技

HttpWebRequest.GetResponse,代码一样,在winform中相应很快,webservice中需要10秒,同电脑?(用C#代码 get请求获

HttpWebRequest.GetResponse,代码一样,在winform中相应很快,webservice中需要10秒,同电脑?(用C#代码 get请求获取网页响应代码,通过HttpWebRequest的GetResponse()方法报异常,我想获取这相应代码)

用C#代码 get请求获取网页响应代码,通过HttpWebRequest的GetResponse()方法报异常,我想获取这相应代码

我不知道你的代码是什么样的出了异常,给你一段代码供参考:

string sRet = "";

try

{

//目标网址事先存在字符串 sPage 中

HttpWebRequest Myrq = (HttpWebRequest)HttpWebRequest.Create(sPage );

Myrq.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; EmbeddedWB 14.52 from: http://www.bsalsa/ EmbeddedWB 14.52; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)";

Myrq.Accept = "*/*";

Myrq.Method = "GET";

Myrq.Headers.Add(HttpRequestHeader.AcceptLanguage, "zh-cn");

Myrq.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");

Myrq.KeepAlive = true;

//Myrq.Referer = xmlurlrefer;//有些网址要求指定referer

//有些网页需要cookie的

//Myrq.Headers.Add(HttpRequestHeader.Cookie, sCookie);

HttpWebResponse myrp = (HttpWebResponse)Myrq.GetResponse();

long totalBytes = myrp.ContentLength;

Encoding ec;

if (!string.IsNullOrEmpty(myrp.CharacterSet))

{

ec = Encoding.GetEncoding(myrp.CharacterSet);//如果响应的网页头有指定编码就用指定编码,否则采用默认的GB2312编码

}

else

{

ec = Encoding.GetEncoding("GB2312");

}

Stream st = myrp.GetResponseStream();

using (StreamReader sr = new StreamReader(st,ec ))

{

sRet = sr.ReadToEnd();

}

st.Close();

//Console.WriteLine(sRet);

return sRet;

}

catch (WebException ex)

{

Console.WriteLine(ex.ToString());

return sRet;

}

httpWebRequest.GetResponse() 基础连接已关闭 发送时发生错误

这个不是超时问题,在XP下只要超过125M以上一提交接就报错,WIN7下只要服务器支持超时时间范围内,就算1G的文件传一天也不会超时,因为.NET框架底层的WebRequest是用IE的wininet.dll来进行网络请求的,所以跟不同系统环境下的IE内核有关,要解决此问题只有一个办法,就是自己用SOCKET来进行HTTP请求

用c#编写webservice时,如何获取调用它的httpwebrequest中?后面的参数 非常感谢。

在webconfig里面把post打开

然后就行了

————

补充一下吧

在service里面写

[WebMethod]

public string aaa(string id)

{

return id;

}

然后打开浏览器http://localhost/WebService1.asmx/aaa?id=aaa

页面显示

aaa

HttpWebRequest.GetResponse是自动在响应完成后调用吗

HttpWebRequest 类对 WebRequest 中定义的属性和方法提供支持,也对使用户能够直接与使用 HTTP 的服务器交互的附加属性和方法提供支持。

  不要使用构造函数创建HttpWebRequest实例,请使用System.Net.WebRequest.Create(URI uriString)来创建实例,如果URI是http://或https://,

返回的是HttpWebRequest对象。(建立请求特定URI的对象)

当向资源发送数据时,GetRequestStream方法返回用于发送数据的Stream对象。(获取请求数据的流对象)

GetResponse方法向RequestUri属性指定的资源发出同步请求并返回包含该响应的HttpWebResponse。(获取来自internet的响应)