次の関数を使用して、C#winformコードのURLアドレスに移動しています。c#HttpWebRequest IOException
私が思うに、コードが細かいですが、それはURLアドレスへの接続を行うためにしようとすると、それが失敗し、のIOExceptionエラースロー:
私の質問は次のとおりです。
私が追加することができますどのようにURLへの接続が正常に行われたことを確認するためのコードのチェック、成功していない場合は、接続が成功するまで再試行するよりも、
public String WebRequestNavigate(string url)
{
StringBuilder sb = new StringBuilder();
byte[] buf = new byte[8192];
if (url != "")
{
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
myReq.KeepAlive = false;
try
{
HttpWebResponse resp = (HttpWebResponse)myReq.GetResponse();
Stream stream = resp.GetResponseStream();
String test = "";
int count = 0;
do
{
**count = stream.Read(buf, 0, buf.Length);**
if (count != 0)
{
test = Encoding.UTF8.GetString(buf, 0, count);
sb.Append(test);
}
}
while (count > 0);
stream.Close();
}
catch (WebException ex)
{
}
}
return sb.ToString();
}
あなたの答えのすべてのおかげでたくさんの友達を。彼らはすべて正しいです。しかし、私は最終的に私のエラーを発見し、それを修正しました。
私はWebExceptionをキャッチしようとしていましたが、エラーはIOExceptionを受け取りました。
私はIOExceptionがようWebExceptionを変更し、次のように私のコードを修正:
catch (IOException ex)
{
System.Threading.Thread.Sleep(500);
myReq = (HttpWebRequest)WebRequest.Create(url);
myReq.KeepAlive = false;
}
私は新しいURLに接続を試みる前に、私のコードを待機させるためにはのThread.sleepのためのあなたの提案を使用していました。これは私の問題%100を解決しました。
ご迷惑をおかけして申し訳ありませんが、あなたは素晴らしい方法で私を助け、洞察力を提供しました。ありがとう!
接続しようとしているURLを尋ねることはできますか? – f2lollpll
のURLアドレスは異なります。あなたがそれを意味するならば、単一のURLアドレスではありません。 –