2014-07-13 46 views
0

我正在为Android创建一个与Azure .NET后端(或至少应该)后台接口的移动应用程序。我可以创建一个服务对象,并得到一张桌子正好与此代码罚款(插入正确的价值观,很明显):Android和Azure移动服务例外:“处理请求时出错”

MobileSerivceClient mClient = new MobileServiceClient(
    "https://myApp.azure-mobile.net/", 
    "myAppKey ", 
    this 
); 
MobileServiceTable myMobileServiceTable = mClient.getTable(MyClass.class); 

结果都是非空并且没有异常抛出。但是,当我尝试执行此代码时:

 myTable.insert(item, new TableOperationCallback<MyClass>() { 
      @Override 
      public void onCompleted(MyClass entity, Exception exception, ServiceFilterResponse response) { 
       AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this).setMessage("Success!"); 
       AlertDialog dialog = builder.create(); 

       if(exception == null) 
       { 
        dialog.show(); 
       } 
       else 
       { 
        builder.setMessage("Exception: " + exception.getMessage()); 
        exception.printStackTrace(); 
        dialog = builder.create(); 
        dialog.show(); 
       } 
      } 
     }); 

我收到来自服务器的错误。在检查ServiceFilterResponse对象中返回的异常时,似乎错误是由404 - 未找到响应引起的,并且返回的异常类型为MobileServiceException。但是这对我没有意义,因为它似乎好像我已经成功连接到我的移动服务。出于某种原因,它不是连接到我与移动服务连接的SQL表吗?有没有人知道在“堆栈”中的位置,如果你愿意,这个错误发生?我无法弄清楚导致问题的原因。

谢谢!

回答

2

我们一直在这里玩蔚蓝的移动服务SDK,这可能会带来一些启发。我们在MobileServiceException中遇到了错误404,但是当我们打印它时,我们得到“表名xyz不存在”。您是否在数据库中创建了一个名为“MyClass”的表?另外,请确保MyClass中的对象与您的“MyClass”表中的数据库列匹配。

希望有所帮助。

+0

当我评论上述答案时,我能够通过帮助页面发送POST请求,但没有任何运气。不幸的是,错误信息就像问题的标题所说的一样,所以它没有给我太多帮助......我已经在.NET后端中命名了这些类,并且我的Android应用程序具有相同的功能和所有属性同样如此。该表是在我发送请求时创建的,它创建了一些自己的列,但我认为这些列是由API生成的(例如版本,CreatedAt,UpdatedAt和Deleted) –

+0

有一点需要注意的是, '在我的.NET版本的类中的Id字段...但我认为基于它看起来如何从它的EntityData基类继承Id属性。不知道这是否有帮助 –

+0

您可以尝试使用mClient.getTable(“MyClass”,MyClass.class)而不是mClient.getTable(MyClass.class)。在我们的例子中,使用类名显然有帮助(但是我们得到了一个不同的错误,所以它对你来说真的是一个黑暗的镜头......)是的,自动处理CreatedAt,UpdatedAt等。索引ID也应该自动处理。 –

0

如果你使用帮助页面打你的控制器会发生什么?请注意,您可以在Azure托管时使用帮助页面 - 只需在浏览器中提示时使用主密钥作为密码,则用户名无关紧要。

+0

我似乎无法找到您所指的帮助页面。我假设这是通过直接访问服务的URL获得的? –

+0

没关系,我设法发送测试POST调用,它工作正常!让我觉得我的android端代码有可能是错误的。你能否以我调用服务的方式或可能以我的android类构造的方式阐述一些可能会出错的东西:谢谢! –