以前にも同様の質問があった ことは承知していますが、提供された解決策はどれもうまくいきませんでした。
メソッドから返されたトークンを調べるBeginGetResponse
と、次の例外がスローされていることがわかります。
'token.AsyncWaitHandle' threw an exception of type 'System.NotSupportedException'
このページは、この例外は Callback パラメーターが Nothing であることを意味することを示していますが、コールバックを渡しています。ブレークポイントを挿入すると、デバッガーがコールバック メソッドに割り込んでいます。ただし、request
コールバック内のオブジェクトは常に null です。result
コールバック メソッドのオブジェクトで同じ例外の詳細を表示できます。
new AsyncCallback(ProcessResponse)
通話時に使ってみたBeginGetResponse
追加してみましたrequest.AllowReadStreamBuffering = true;
このエミュレータ内とデバイス上で試しましたが、どちらもうまくいきませんでした。
public static void GetQuakes(int numDays)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://magma.geonet.org.nz/services/quake/geojson/quake?numberDays=" + numDays);
// Examining this token reveals the exception.
var token = request.BeginGetResponse(ProcessResponse, request);
}
static void ProcessResponse(IAsyncResult result)
{
HttpWebRequest request = result.AsyncState as HttpWebRequest;
if (request != null)
{
// do stuff...
}
}
というわけで、次はどこを見ようか迷ってしまいます。