これは初心者からのよくある典型的な質問だと思いますが、与えられた解決策をまだ完全には理解していません。HttpWebRequest
Windows Phone 7 アプリケーションを作成していますが、POST データを送信していくつかのヘッダーを設定する場所をいくつか実行したいと考えています。レスポンスはデシリアライズしてから、ロジックや UI レイヤーで処理する必要があります。
はい。Silverlight アプリの場合、Web 通信は非同期で行われます。了解。それは正常に動作します。
BUT: UI resp から通信処理を分離したい。xaml.cs コード。HttpWebRequest
ヘッダーなどを変更する必要があるため、との通信を行う必要があります。
私がやりたいことは次のとおりです。
- ボタンをクリックします。ログイン/ユーザー名は、私の通信層としましょう。例えば:
LoginRequest(string username, string pwd)
- 通信。層は要求を実行し、応答を非同期的に取得します。つまり、コールバックを呼び出します。
LoginResponseCallback(IAsyncResult res)
- これで、応答を処理し、取得した JSON 文字列をオブジェクトに逆シリアル化できます
- データを更新するには、オブジェクトを UI に戻す必要があります。
Dispatcher.BeginInvoke
コールバックが UI スレッドで実行されていないため、メソッドを使用する必要があることはわかっています。
しかし、オブジェクトを通信レイヤーから UI に渡す方法がまだわかりません。btnLogin_onClick(object sender, RoutedEventArgs e)
からLoginRequest
メソッドにデリゲートを渡すなど、ソリューションは非常に簡単だと思います。それとも、ラムダで作業する必要がありますか?
適切なヘッダー (例: ClientOS、LoginKey、VersionBuild など) を設定するSendBasicRequest
メソッドが通信レイヤーにあり、複数のページからこのメソッドを呼び出したいので、通信レイヤーで分離する必要があります。
前もって感謝します