晴れのモバイルサービスから晴天のWebアプリケーションにアプリケーションを移植しようとしています。 (モバイルサービスが機能していた)。 web-appにmicrosoftアカウント認証を追加し、webapp apiにMobileAppController属性を追加しました。私はAPIを呼び出すユニバーサルWindowsアプリのフロントエンドを持っています。アプリは最初にプレーヤーがデータベースに入っているかどうかをチェックし、そうでなければレスポンスが見つからない。 MobileServiceClientで次のコードを使用してメソッドを呼び出すと、例外が発生します。 //クライアント応答が見つからないときにモバイルサービスクライアントが例外をスローする
private async Task<HttpResponseMessage> GetAZMAsyncP(string apiext, IDictionary<string,string> param)
{
string myuri = String.Format("{0}{1}", urlbase, apiext);
私は404が発見されていない応答を得ることはありません正しく //ログインしているMobileServiceClientですが、私は VAR応答例外を「要求が見つかりません、完了できませんでした」取得=クライアントを待ちます.InvokeApiAsync(myuri、System.Net.Http.HttpMethod.Get、param); リターンレスポンス。 } httpclientからapiを呼び出し、私のためにモバイルクライアントが行うはずの自分のヘッダーを追加すると、要求通りに応答が得られます。コードは次のとおりです。
private async static Task<HttpResponseMessage> GetAZAsync(string apiext)
{
string completeUrl = String.Format("{0}{1}", urlbase, apiext);
// Call out to AZ
using (var http = new HttpClient())
{
// http.BaseAddress = new Uri(completeUrl);
HttpRequestMessage rq = new HttpRequestMessage()
{
RequestUri = new Uri(completeUrl),
Method = HttpMethod.Get
};
addauthheader(rq);
var response = await http.SendAsync(rq);
return response;
}
}
private static void addauthheader(HttpRequestMessage rq)
{
MobileServiceUser user = App.client.CurrentUser;
rq.Headers.Add("X-ZUMO-FEATURES", "AT,QS");
rq.Headers.Add("X-ZUMO-INSTALLATION-ID",
"ff90f37e-0c03-4c52-a343-af711752e383");
rq.Headers.Add("X-ZUMO-AUTH", user.MobileServiceAuthenticationToken);
rq.Headers.Add("Accept", "application/json");
rq.Headers.Add("User-Agent", "ZUMO/2.1");
rq.Headers.Add("User-Agent",
"(lang = Managed; os = Windows Store; os_version = --; arch = X86; version = 2.1.40707.0)");
rq.Headers.Add("X-ZUMO-VERSION",
"ZUMO/2.1(lang = Managed; os = Windows Store; os_version = --; arch = X86; version = 2.1.40707.0)");
rq.Headers.Add("ZUMO-API-VERSION", "2.0.0");
}
これはライブ(バグ)と同様に試すことができます。
https://gamenote2.azurewebsites.net/api/Players?displayname=Paulゴールドシュミット& teamid =アリゾナ・ダイヤモンドバックス はあなたに404を与える必要があり、 https://gamenote2.azurewebsites.net/api/Players?displayname=Chaseアトリー& teamid =ロス・アンヘレス・ドジャース はあなたのチェイス・アトリーオブジェクトを与える必要があります。 (あなたはMicrosoftアカウントにログインするよう求められます)。
私の質問:1.実行の代わりに応答を得るためにmobileclientコールを修正することはできますか 2.これに多くの時間を費やしている理由はありますか?
上記の作業は大丈夫ですが、原則です。なぜ私はhttpresponseを要求しているときに例外を取得する必要がありますか?私は、例外を得るのに直感的ではないように見えます。 –