2016-07-27 5 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のインポートは、新しいバージョンでは機能していません。私は古いバージョンに戻すことができますが、それは実際には最適ではありません。このようなこと(Webサービスに接続してデータを読み取る)を行う現在の方法は何ですか?誰でも私に簡単な例を与えたり、何をすべきか説明したりできますか?今のAndroidは、Apache HTTP、Androidはwebservice、org.apache.httpに接続できません。

するのではなく、HttpURLConnectionのを支援している

+0

移行する方法を確認するには、廃止予定のクラスのドキュメントを読む必要があります – Jens

+0

アクセスしているウェブサービスの種類、RESTfulまたはSOAPですか? –

+0

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

答えて

関連する問題