import com.example.hoofdgebruiker.winkelskortrijk.Interfaces.ODKortrijkInterface;
import com.example.hoofdgebruiker.winkelskortrijk.Model.Winkel;
public class ODKortrijkWebservice extends AsyncTask<ODKortrijkInterface, Void, String>{
private ODKortrijkInterface listener;
@Override
protected String doInBackground(ODKortrijkInterface... arg0) {
listener = arg0[0];
StringBuilder newsBuilder = new StringBuilder();
// execute search
try {
//HttpGet newsGet = new HttpGet("http://data.drk.be/kortrijk/nieuws.xml");
HttpGet newsGet = new HttpGet("http://data.kortrijk.be/nieuws/rss.xml");
HttpResponse newsResponse = newsClient.execute(newsGet);
StatusLine newsSearchStatus = newsResponse
.getStatusLine();
if (newsSearchStatus.getStatusCode() == 200) {
// we have an OK response
HttpEntity newsEntity = newsResponse.getEntity();
InputStream placesContent = newsEntity.getContent();
InputStreamReader placesInput = new InputStreamReader(
placesContent);
BufferedReader placesReader = new BufferedReader(
placesInput);
String lineIn;
while ((lineIn = placesReader.readLine()) != null) {
newsBuilder.append(lineIn);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return newsBuilder.toString();
}
protected void onPostExecute(String result) {
ArrayList<NewsItem> newsItems = processResult(result);
listener.updateScreen(newsItems);
}
private ArrayList<NewsItem> processResult(String result){
ArrayList<NewsItem> newsItems = new ArrayList<NewsItem>();
NewsItem newsItem= new NewsItem();
try {
// parse XML
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(new StringReader(result));
int eventType = xpp.getEventType();
boolean isItem = false;
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_TAG) {
if (xpp.getName().equalsIgnoreCase("item")){
newsItem= new NewsItem();
isItem=true;
} else if (xpp.getName().equalsIgnoreCase("title") && isItem){
xpp.next();
newsItem.setTitle(xpp.getText());
} else if (xpp.getName().equalsIgnoreCase("link") && isItem){
xpp.next();
newsItem.setLink(xpp.getText());
} else if (xpp.getName().equalsIgnoreCase("description") && isItem){
xpp.next();
newsItem.setDescription(xpp.getText());
newsItems.add(newsItem);
isItem=false;
}
}
eventType = xpp.next();
}
}
catch (Exception e) {
e.printStackTrace();
}
return newsItems;
}
}
Мне нужно сделать что-то подобное, но для другого веб-сервиса. Однако импорт org.apache.http не работает в более новых версиях. Я мог бы вернуться к более старым версиям, но это не кажется оптимальным. Каков текущий способ сделать что-то вроде этого (подключиться к веб-сервису и прочитать данные)? Любой может дать мне простой пример или объяснить, что я должен делать? СпасибоAndroid подключен к webservice, org.apache.http лишен?
Вы должны прочитать документацию устаревших классов, чтобы узнать, как вы можете ее перенести. – Jens
Каким типом веб-сервиса, к которому вы обращаетесь, RESTful или SOAP? –
@MonishKamble http://data.kortrijk.be/middenstand/winkels_markten – user3117628