【问题标题】:Consume WCF Data Service in Android Client在 Android 客户端中使用 WCF 数据服务
【发布时间】:2014-11-20 23:48:35
【问题描述】:

我是 Android 开发的初学者。我正在尝试通过 WCF 数据服务检索数据。该服务配置为以 atom 和 json 格式返回数据。

我正在使用 odata4j 库。我的代码在下面...

public class Welcome extends Activity {

Button call;
ListView list;
ArrayList categories;
ArrayAdapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_welcome);

    setTitle("WCF Example");
    call = (Button) findViewById (R.id.mybtn);
    list = (ListView) findViewById(R.id.mylistview);
    categories = new ArrayList();
    call.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {

            new callService().execute();
        }
    });
}
public class callService extends AsyncTask<Void, Void, ArrayList<String>> {
    @Override
    protected ArrayList<String> doInBackground(Void... params) {

    ODataConsumer c =                    ODataJerseyConsumer.create("http://217.37.219.177:82/EbosDataService.svc");
        List<OEntity> listEntities = c.getEntities("driver_details").execute().toList();
        System.out.println("Size"+ listEntities.size());
        if (listEntities.size() > 0) {
            for (OEntity entity : listEntities) {
                categories.add(entity.getProperty("DriverID").getValue().toString()
                        + " - "
                        + entity.getProperty("DriverFirstName").getValue());
            }
        }
        return categories;
    }
    @Override
    protected void onPostExecute(ArrayList<String> result) {            
        super.onPostExecute(result);
        adapter = new ArrayAdapter<String>(Welcome.this,
                android.R.layout.simple_list_item_1, result);
        list.setAdapter(adapter);
    }
}
}

当我运行时,应用程序变得无响应。请看日志

http://217.37.219.177:85/errorlog.txt

但是,当我访问 http://services.odata.org/Northwind/Northwind.svc 时,我的代码有效。请看日志

http://217.37.219.177:85/successlog.txt

我想我的服务有问题。我无法解决这个问题,因为我在不同的 dot net 客户端中使用相同的服务并且它工作正常。

任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: android json wcf-data-services


    【解决方案1】:

    我建议您调试应用程序以解决 NullPointerException。

    顺便说一句,您使用的是 OData 早期版本。如果您在服务器端使用 OData V4,那么在客户端,您可以使用 Apache Olingo OData for Java Client @http://olingo.apache.org/doc/odata4/download.html Olingo OData Client for Android 下载(md5、sha512、pgp)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-21
      • 1970-01-01
      • 1970-01-01
      • 2012-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多