Пример #1
0
  @Override
  protected Document doInBackground(RouteParams... params) {

    if (params.length == 0) return null;

    RouteParams par = params[0];

    String cached = null, xmlstring = null;

    if (!par.force_download) cached = getCached(par.train_number);

    if (cached != null
        && checkTable(cached, par.departure, par.deptime)
        && checkTable(cached, par.arrival, par.arrtime)) xmlstring = cached;
    else {
      if (!CommonUtils.onlineCheckSilent()) return null;

      isCached = false;
      publishProgress();

      String data =
          "start=yes&REQTrain_name="
              + par.train_number
              + "&date="
              + par.date
              + "&time="
              + par.deptime
              + "&sTI=1&dirInput="
              + par.arrival
              + "&L=vs_java3&input="
              + par.departure
              + "&boardType="
              + par.type;
      String url = "http://rozklad.sitkol.pl/bin/stboard.exe/pn";

      try {
        DefaultHttpClient client = new DefaultHttpClient();
        HttpPost request = new HttpPost(url);
        client.removeRequestInterceptorByClass(
            org.apache.http.protocol.RequestExpectContinue.class);
        client.removeRequestInterceptorByClass(org.apache.http.protocol.RequestUserAgent.class);
        request.addHeader("Content-Type", "text/plain");
        request.setEntity(new StringEntity(data));

        InputStream inputStream = client.execute(request).getEntity().getContent();

        ByteArrayOutputStream content = new ByteArrayOutputStream();

        int readBytes = 0;
        while ((readBytes = inputStream.read(sBuffer)) != -1) {
          content.write(sBuffer, 0, readBytes);
        }

        xmlstring = new String(content.toByteArray());
        xmlstring = xmlstring.replace("< ", "<");

        saveInCache(par.train_number, xmlstring);
      } catch (Exception e) {
        return null;
      }
    }
    try {
      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
      DocumentBuilder db = factory.newDocumentBuilder();
      InputSource inStream = new InputSource();
      inStream.setCharacterStream(new StringReader("<a>" + xmlstring + "</a>"));
      return db.parse(inStream);
    } catch (Exception e) {
      return null;
    }
  }