運行以下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