c#- Windows Mobile 下HttpWebRequest请求几次后死掉不在请求

[复制链接]
查看11 | 回复1 | 2010-4-1 20:40:00 | 显示全部楼层 |阅读模式
代码如下所示:
public void remotebidui(object res)
{

//去远程取回XML文档,然后解析XML文档

ReturnResult result = new ReturnResult();

try

{

result = (ReturnResult)res;

//res

}

catch (Exception err)

{

MessageBox.Show("cast",err.Message);

}

this.sfzh = result.sValue;

this.strStatusValue = result.returnRange;

try

{



if (strStatusValue.Equals("在逃"))

{

rangeStr = "10000000";



}

if (sfzh != "") { URI = config.biduiurl + "?pid=" + sfzh+"&range="+rangeStr; }

// MessageBox.Show("sfzh:"+sfzh+",uri:"+config.biduiurl+",pid:"+sfzh+",range:"+rangeStr);

// InternetSetCookie(URI, "", config.cookie);

HttpWebRequest request = WebRequest.Create(URI) as HttpWebRequest;

request.Headers.Add("COOKIE",config.cookie);

request.Method = "GET";

request.KeepAlive = false;

request.Timeout = 120000;

HttpWebResponse response = request.GetResponse() as HttpWebResponse;

System.IO.Stream responseStream = response.GetResponseStream();

System.IO.StreamReader reader = new System.IO.StreamReader(responseStream, Encoding.Default);

string srcString = reader.ReadToEnd();

//MessageBox.Show("srcString:" + srcString);

request = null;



//request.ServicePoint.ConnectionLimit = 8;

// request.ServicePoint.ConnectionLimit = 200;

response.Close();

reader.Close();

reader.Dispose();

responseStream.Close();

responseStream.Dispose();

delegateEvent additemevent = additem;



ReturnResult result1 = new ReturnResult();

result1.sValue = srcString;

result1.returnRange = rangeStr;

if (additemevent != null)

{

additemevent(result1);

}

}

catch (Exception ee)

{

string s = "" + ee.Message + "";

//MessageBox.Show("000000");

delegateEvent additemevent = additem;

ReturnResult result1 = new ReturnResult();

// MessageBox.Show("1111");

result1.sValue = s;

//result1.returnRange = "00000000";

result1.returnRange = rangeStr;

if (additemevent != null)

{

additemevent(result1);

}

}

finally {



}


}
使用线程进行请求:
if (strStatue.Substring(0, 1).Equals("1"))

{

ReturnResult result = new ReturnResult();

result.returnRange = "在逃";

result.sValue = sfzh;

object obj = (object)result;

bidui bd = new bidui(obj);

bd.additem += AddItemEvent;

WaitCallback w = new WaitCallback(bd.remotebidui);

ThreadPool.QueueUserWorkItem(w, obj);

}


出现问题: webrequest请求几次后就没反应了,一般request能请求个10来次就死掉了。
请大家帮忙解决,谢谢!!
回复

使用道具 举报

千问 | 2010-4-1 20:40:00 | 显示全部楼层
// request.ServicePoint.ConnectionLimit = 200;
把这行代码的注释给取消掉。
最好是在finally处加上
if (request != null)
{

request.Abort();
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行