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のを支援している
移行する方法を確認するには、廃止予定のクラスのドキュメントを読む必要があります – Jens
アクセスしているウェブサービスの種類、RESTfulまたはSOAPですか? –
@MonishKamble http://data.kortrijk.be/middenstand/winkels_markten – user3117628