java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/Texy.java
author František Kučera <franta-hg@frantovo.cz>
Mon May 24 19:00:43 2010 +0200 (2010-05-24)
changeset 119 d91f600c4645
child 123 9135d52e8b0a
permissions -rw-r--r--
Adaptér pro Texy (volání vzdálené služby) + základní testy.
franta-hg@119
     1
package cz.frantovo.nekurak.ext;
franta-hg@119
     2
franta-hg@119
     3
import java.io.BufferedReader;
franta-hg@119
     4
import java.io.InputStreamReader;
franta-hg@119
     5
import java.io.OutputStreamWriter;
franta-hg@119
     6
import java.net.URL;
franta-hg@119
     7
import java.net.URLConnection;
franta-hg@119
     8
import java.net.URLEncoder;
franta-hg@119
     9
franta-hg@119
    10
/**
franta-hg@119
    11
 * Neprovádí vlastní interpretaci Texy syntaxe, ale volá HTTP službu napsanou v PHP.
franta-hg@119
    12
 * @author fiki
franta-hg@119
    13
 */
franta-hg@119
    14
public class Texy {
franta-hg@119
    15
franta-hg@119
    16
    /** TODO: parametrizovatelnost/localhost ? */
franta-hg@119
    17
    private static final String URL_SLUZBY = "http://nekurak.net/texy/http/";
franta-hg@119
    18
franta-hg@119
    19
    public String preved(String text) {
franta-hg@119
    20
	try {
franta-hg@119
    21
	    URL url = new URL(URL_SLUZBY);
franta-hg@119
    22
	    URLConnection spojeni = url.openConnection();
franta-hg@119
    23
	    spojeni.setDoOutput(true);
franta-hg@119
    24
franta-hg@119
    25
	    /** Odešleme data */
franta-hg@119
    26
	    OutputStreamWriter wr = new OutputStreamWriter(spojeni.getOutputStream());
franta-hg@119
    27
	    wr.write(URLEncoder.encode(text, "UTF-8"));
franta-hg@119
    28
	    wr.flush();
franta-hg@119
    29
franta-hg@119
    30
	    /** Přijmeme odpověď */
franta-hg@119
    31
	    BufferedReader rd = new BufferedReader(new InputStreamReader(spojeni.getInputStream()));
franta-hg@119
    32
	    StringBuffer vysledek = new StringBuffer();
franta-hg@119
    33
	    String radka;
franta-hg@119
    34
	    while ((radka = rd.readLine()) != null) {
franta-hg@119
    35
		vysledek.append(radka);
franta-hg@119
    36
	    }
franta-hg@119
    37
franta-hg@119
    38
	    // TODO: → finally
franta-hg@119
    39
	    wr.close();
franta-hg@119
    40
	    rd.close();
franta-hg@119
    41
franta-hg@119
    42
	    return vysledek.toString();
franta-hg@119
    43
	} catch (Exception e) {
franta-hg@119
    44
	    return "TODO:chyba";
franta-hg@119
    45
	} finally {
franta-hg@119
    46
	    // TODO
franta-hg@119
    47
	}
franta-hg@119
    48
    }
franta-hg@119
    49
}