今日、WP7.5/7.8 で非常に奇妙な動作を発見しました
認証を実装しています。投稿リクエストを行う必要があります。その後、結果ページにリダイレクトされます。
WP8 では、リダイレクト後に結果ページを取得しています。WP7.5/7.8 では、リダイレクト結果 (StatusCode - 302) が表示されます。
public void MakeRequest() {
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(Consts.Url);
request.AllowAutoRedirect = true;
request.Method = "POST";
request.Headers[HttpRequestHeader.Cookie] = cookie;
request.BeginGetResponse(new AsyncCallback(ProcessRequest), request);
}
プロセス応答
private void ProcessRequest(IAsyncResult callbackResult) {
HttpWebRequest myRequest = (HttpWebRequest)callbackResult.AsyncState;
using (HttpWebResponse myResponse = (HttpWebResponse)myRequest.EndGetResponse(callbackResult)) {
if (myResponse.StatusCode != HttpStatusCode.OK) {
RaiseConnectionError(string.Format("Response from server {0}\n{1}", myResponse.StatusCode, myResponse.StatusDescription));
return;
}
}
}
私が気づいたこの状況は、現在のプロジェクトに裏打ちされています。ASP.NET MVC を使用してバッキングで同じ状況を作成したとき、
[HttpPost]
public ActionResult Redirect() {
return RedirectToAction("Index");
}
// index returns simple view
WP7.5 と 8 の両方で機能しました。奇妙なことに、バックエンドは iOS と Android で正常に動作します。カスタム UserAgent (通常のブラウザーのような) を使用することをお勧めする同様の質問を見ましたが、私にはうまくいきませんでした。