我试图将应用程序从天蓝色的移动服务移植到天蓝色的Web应用程序。 (移动服务正在工作)。我已将微软帐户身份验证添加到Web应用程序,并且Web应用程序API具有MobileAppController属性。我有一个调用API的通用Windows应用程序前端。应用程序首先检查一个玩家是否在数据库中,如果没有,我会得到一个未找到的响应。如果我使用MobileServiceClient使用以下代码调用方法,则会发生异常。移动服务客户端在未找到响应时抛出异常
private async Task<HttpResponseMessage> GetAZMAsyncP(string apiext, IDictionary<string,string> param)
{
string myuri = String.Format("{0}{1}", urlbase, apiext);
//客户端是在 正确记录的MobileServiceClient //我没有得到响应是404没有找到,我得到一个异常“的请求无法完成,未找到” VAR响应= await client.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 =洛杉矶 - 洛杉矶 - 道奇 应该给你一个蔡斯·阿特利对象。 (YOu将被要求登录到Microsoft帐户)。
所以我的问题:1.我可以修复mobileclient调用来获得响应而不是执行 2.是否有任何理由让我花这么多时间在这个上。
上面的工作是可以的,但原则上。为什么当我要求httpresponse时应该得到异常?在我看来,直觉得到异常。 –