运行以下Java代码时,我确定测试的网页是否运行时会得到非常准确和一致的结果。测试时,Java和c#代码之间的不同性能
protected synchronized boolean checkUrl(HttpURLConnection connection){
boolean error = false;
//HttpURLConnection connection = null;
GregorianCalendar calendar = new GregorianCalendar();
try{
if(connection != null){
connection.connect();
//200 is the expected HTTP_OK response
error = processResponseCode(connection.getResponseCode());
connection.disconnect();
} else{
error = false;
}
}catch(java.net.UnknownHostException uhe){
... }
catch(Exception e){
... }
return error;
}
最接近的比赛在C#在Java模式有误报的高得多的结果(主要是由于超时 - 其中有100000ms的默认时期)。
protected bool connectedToUrl = false;
response = null;
HttpWebRequest webreq = (HttpWebRequest)WebRequest.Create(this.getUri());
webreq.Credentials = CredentialCache.DefaultCredentials;
WebResponse res = null;// webreq.GetResponse();
try
{
WebRequest request = WebRequest.Create(this.getUri()) as WebRequest;
request.Credentials = CredentialCache.DefaultCredentials;
if (request != null)
{
// Get response
res = webreq.GetResponse();
connectedToUrl = processResponseCode(res);
}
else
{
logger.Fatal(getFatalMessage());
string error = string.Empty;
}
}
catch (Exception e)
{
throw e;
}
return connectedToUrl;
}
我已经尝试过c#中的各种模式来匹配引用的Java代码的有效性,无济于事。
任何想法?
他们会不会只是超出范围? – 2009-01-27 21:08:09
不,这还不够。确保你打电话*任何*关闭方法,你可以找到你使用的所有HTTP相关的对象;) – krosenvold 2009-01-27 21:10:40
有一些池,这是你必须关闭的原因。 – krosenvold 2009-01-27 21:11:24