[英]Consume WCF Data Service in Android Client
我是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
我想我的服务有问题。 我无法解决该问题,因为我在不同的点网客户端中使用了相同的服务,因此效果很好。
任何帮助都感激不尽。
谢谢。
我建议您调试应用程序以解决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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.