2016-07-27 2 views
0
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 лишен?

+0

Вы должны прочитать документацию устаревших классов, чтобы узнать, как вы можете ее перенести. – Jens

+0

Каким типом веб-сервиса, к которому вы обращаетесь, RESTful или SOAP? –

+0

@MonishKamble http://data.kortrijk.be/middenstand/winkels_markten – user3117628

ответ

Смежные вопросы