MonoDroid で Webrequests を使用してランダムにタイムアウトを取得するのに多くの問題があります。私のコードは正常に動作しますが、すべてのリクエストがタイムアウトして動作しないことがあります。
リクエストで使用されている Web サービスに問題がないことを確認しました。
以下は、MonoDroid を使用して Web サービスからデータを要求するために使用できるコードの例です。
bool bolOk = false;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create ("http://www.website.com/service/");
request.Timeout = 20000;
request.Credentials = gv_objCredentials;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse ()) {
bolOk = response.StatusCode == HttpStatusCode.OK;
}
ご覧のとおり、基本的なものです。上記のようなコードは、ThreadPool.QueueUserWorkItem または TaskFactory を使用して UI への別のスレッドで常に使用します。
私が気付いたのは、リクエストがアプリからタイムアウトし始め、それをコンピューターに接続すると、MonoDevelop からアプリをデバッグすると、リクエストがタイムアウトせずに機能することです。これが何かを意味するかどうかはわかりません。これは、電話と同じネットワーク上のブラウザーを使用して、自分のコンピューターから Web サービスをテストすることに似ています。Web サービスは常に問題なく動作します。
MonoDroid から Web リクエストを作成する最良の方法は何ですか?
Web サービスが正しく動作している場合、リクエストが常に成功し、タイムアウトしないようにするにはどうすればよいですか?