[英]HttpWebResponse does not respond
我的HttpWebRequest
有問題。 我正在嘗試管理具有WebService的服務器和具有CF 2.0客戶端的Windows CE 6.0之間的連接,而我的實際目的是檢索Windows CE計算機的外部IP。 我嘗試使用HttpWebResponse
但是在通話過程中卡住了。
現在,我將更清楚地講,這就是我在WinCE機器上運行以獲取IP的代碼:
private string GetIPAddressRemote()
{
Uri validUri = new Uri("http://icanhazip.com");
try
{
string externalIP = "";
HttpWebRequest httpRequest = (HttpWebRequest)HttpWebRequest.Create(validUri);
httpRequest.Credentials = CredentialCache.DefaultCredentials;
httpRequest.Timeout = 10000; // Just to haven't an endless wait
using (HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse())
/* HERE WE ARE
* In this point my program stop working...
* well actually it doesn't throw any exception and doesn't crash at all
* For that reason I've setted the timeout property because in this part
* it starts to wait for a response that doesn't come
*/
{
using (Stream stream = httpResponse.GetResponseStream())
{
// retrieve the return string and
// save it in the externalIP variable
}
}
return externalIP;
}
catch(Exception ex)
{
return ex.Message;
}
}
那我有什么問題 我不知道為什么它會在httpRequest.GetResponse()
調用期間httpRequest.GetResponse()
,有什么主意嗎? 我必須說我在代理服務器下,所以我想到了代理服務器可能阻止某些請求的想法,是嗎?
好的,我想到了這樣的東西:
private string GetIPAddressRemote()
{
Uri validUri = new Uri("http://icanhazip.com/");
int tryNum = 0;
while (tryNum < 5)
{
tryNum++;
try
{
string externalIP = "";
WebProxy proxyObj = new WebProxy("http://myProxyAddress:myProxyPort/", true); // Read this from settings
WebRequest request = WebRequest.Create(validUri);
request.Proxy = proxyObj;
request.Credentials = CredentialCache.DefaultCredentials;
request.Timeout = 10000; // Just to haven't an endless wait
using (WebResponse response = request.GetResponse())
{
Stream dataStream = response.GetResponseStream();
using (StreamReader reader = new StreamReader(dataStream))
{
externalIP = reader.ReadToEnd();
}
}
return externalIP;
}
catch (Exception ex)
{
if(tryNum > 4)
return ex.Message;
}
Thread.Sleep(1000);
}
return "";
}
但是現在的問題是,沒有任何要檢索的信息。 我的意思是,我從Stream
解析的字符串是一個html
頁面,而檢索到的字符串是:
<html>
<body>
<h1>It works!</h1>
<p>This is the default web page for this server.</p>
<p>The web server software is running but no content has been added, yet.</p>
</body>
</html>
我現在能做什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.