我真的是使用Android的新手,所以让我感到困惑。我看了看似100篇教程以及有关如何从Android上的Web服务获取信息的示例,但是我需要的是对一个毫无头绪的人所需要的东西。以下是我没有得到的特别几点:
我的Web服务正常运行,并且与我在许多教程中看到的基本相同,因此那里没有问题。
如果有人可以向我指出一个教程,可以帮助我学习创建样本应用程序(从Web服务获取信息)所需的全部知识,或者有人愿意指导我完成本教程,那么我将不胜感激!
提前致谢!
最初, 您必须建立一个http连接,以便可以从api获得响应,无论是xml响应还是json响应。您可以使用以下代码。
使班级与活动分开。:-
public class Response {
String get_url, response;
Activity activity;
public Response(String url){
this.get_url = url;
}
public String getResponse(){
InputStream in = null;
byte[] data = new byte[1000];
try {
URL url = new URL(get_url);
URLConnection conn = url.openConnection();
conn.connect();
/* conn.*/
in = conn.getInputStream();
Log.d("Buffer Size +++++++++++++", ""+in.toString().length());
BufferedReader rd = new BufferedReader(new InputStreamReader(in),in.toString().length());
String line;
StringBuilder sb = new StringBuilder();
while ((line = rd.readLine()) != null) {
sb.append(line);
}
rd.close();
response = sb.toString();
in.read(data);
Log.d("INPUT STREAM PROFILE RESPONSE",response);
in.close();
} catch (IOException e1) {
Log.d("CONNECTION ERROR", "+++++++++++++++++++++++++++");
// TODO Auto-generated catch block
e1.printStackTrace();
}
return response;
}
}
您可以像这样在活动中上课:-
Response res = new Response("your_url");
String getResponse = res.getResponse();
因此,您可以从api获得响应。
现在,让解析器
//Extend the class with Default Handler
public class XMLParser extends DefaultHandler {
//You must have basic knowledge about Array List and setter/getter methods
// This is where the data will be stored
ArrayList<Item> itemsList;
Item item;
String data;
String type;
private String tempVal;
//Create the Constructor
public XMLParser(String data){
itemsList = new ArrayList<Item>();
this.data = data;
}
public byte parse(){
SAXParserFactory spf = null;
SAXParser sp = null;
InputStream inputStream = null;
try {
inputStream = new ByteArrayInputStream(data.getBytes());
spf = SAXParserFactory.newInstance();
if (spf != null) {
sp = spf.newSAXParser();
sp.parse(inputStream, this);
}
}
/*
* Exceptions need to be handled MalformedURLException
* ParserConfigurationException IOException SAXException
*/
catch (Exception e) {
System.out.println("Exception: " + e);
e.printStackTrace();
} finally {
try {
if (inputStream != null)
inputStream.close();
} catch (Exception e) {
}
}
if (itemsList != null && itemsList.size() > 0) {
// //Log.d("Array List Size",""+tipsList.get(4).getTitle());
return 1;
} else {
return 0;
}
}
public ArrayList<Item> getItemList(){
return itemsList;
}
// Here you can check for the xml Tags
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
if(localName.equalsIgnoreCase("item")){
item = new Item();
Log.d("Working", "+++++++++++++++++++++++");
}
}
//tempVal is the variable which stores text temporarily and you
// may save the data in arraylists
public void characters(char[] ch, int start, int length)
throws SAXException {
tempVal = new String(ch, start, length);
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
if(localName.equalsIgnoreCase("item")){
itemsList.add(item);
Log.d("Working in endelement", "+++++++++++++++++++++++");
item.setTitle(tempVal);
}
}
结合所有这些:
现在让我们看一下活动
public void oncreate(){
// Do something or mostly the basic code
// Call the class to initate the connection and get the data
FetchList fl = new FetchList();
fl.execute();
}
//Always better to use async task for these purposes
public class FetchList extends asyncTask<Void,Void,Byte>{
doinbackground{
// this was explained in first step
Response res = new Response("url");
String response = res.getResponse();
XmlParser xml = new XmlParser(response);
ArrayList<item> itemList = xml.getItemList();
xml.parse();
}
}
好了,仅此而已。
问题内容: 我需要一些有关解决此问题的最佳方法的建议。 我研究了DROOLS,Java Rule Engine和其他一些工具。所有这些都很强大,并且对它们有好处。我不知道哪个(如果有)对我来说是最佳选择。 我有一个业务对象。(简化为演示) 我需要在Web应用程序中编写一个编辑器,以允许围绕这些字段构建复杂的规则。我需要支持复杂的嵌套AND / OR逻辑。我只需要基本运算符,规则应该简单地评估为是或
问题内容: 我正在尝试在Eclipse中创建一个简单的Web服务。首先,我创建了一个空的Java项目,并将以下三个文件添加到src文件夹中 Greeting.java GreetingImp.java WSPublisher 我正在遵循的教程未指定任何服务器来运行Web服务!我想知道是否需要指定任何服务器。我已经有了Tomcat v5.5,但在此示例中未使用它。每当我将这个项目作为Java项目运行
This section is intended as a walkthrough for the creation of custom extensions. It covers the basics of writing and activating an extensions, as well as commonly used features of extensions. As an ex
我在互联网上查过关于、等的信息,所有这些都有一些没有帮助的例子。我只需要一个基本的方法来为我的Java应用程序做一个好的布局。我将向您展示我的代码: 这是一个基本的gui,它有一些标签和一些文本字段,使用.pack()方法,它们将显示在同一行上,我只需要一个小的简单方法来做出一个好的布局
我对这个很陌生,我有几个问题。我有用keras创建的python神经网络的代码片段。该模型用于情感分析。使用标记数据的训练数据集(情绪=1或0)。现在我有几个关于如何描述神经网络的问题。 我对以下许多条款都不是很清楚,所以不要对我太苛刻。 1:有什么能让这成为情绪分析的典型模型吗? 2:它是“单词袋”吗?(我的猜测是肯定的,因为数据是使用标记器预处理的) 3:是“卷积”吗? 4:深吗? 5:密度大
根据实践中的Java并发,11.4.3章说: 锁拆分有时可以扩展到对一组可变的独立对象进行分区锁定,在这种情况下称为锁条带化。例如,ConcurrentHashMap的实现使用了一个由16个锁组成的数组,每个锁守护1/16的散列桶;铲斗N由锁N mod 16保护。