Здравствуйте!
Сайт
www.umori.li предоставляет REST API с помощью которого можно получать список цитат. Например, ответом на запрос "
www.umori.li/api/get?site=bash.im&name=bash&num=100" будет JSON-массив со 100 цитатами. Для начала изучения REST я решил использовать HttpURLConnection, а потом уже приступать к retrofit, но тут же столкнулся с проблемой. Вместо этих 100 цитат я получаю следующее:
<html><head><title>www.umori.li</title></head><frameset BORDER='0' frameborder='0' framespacing='0' rows='100%,*'>
<frame name='target' src='http://umorili.herokuapp.com/api/get?site=bash.im&name=bash&num=100'>
<noframes> <body BGCOLOR='#FFFFFF'>
This page requires that your browser supports frames.
<BR>You can access the page without frames with this <a href='http://umorili.herokuapp.com/api/get?site=bash.im&name=bash&num=100'>link</A>.
</body></noframes></frameset></html>
Хотя если ввести в браузере строку "
www.umori.li/api/get?site=bash.im&name=bash&num=100", то можно будет увидеть тот самый JSON-массив с цитатами. Не совсем понимаю в чем может быть ошибка, но думаю, что неправильно передаются параметры.
Код класса:
import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
public class RestHelper extends Thread {
URL url;
HttpURLConnection httpURLConnection;
@Override
public void run() {
BufferedReader in = null;
StringBuilder buf;
String urlString = null;
try {
url = new URL("http://www.umori.li/api/get?site=bash.im&name=bash&num=100");
httpURLConnection = (HttpURLConnection)url.openConnection();
} catch (MalformedURLException e) {
Log.i("REST", "MalformedURLException");
} catch (IOException e) {
Log.i("REST", "IOException");
}
try {
httpURLConnection.setRequestMethod("GET");
httpURLConnection.setConnectTimeout(10000);
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
httpURLConnection.connect();
} catch (ProtocolException e) {
Log.i("REST", "ProtocolException");
} catch (IOException e) {
Log.i("REST", "IOException");
}
buf = new StringBuilder();
try {
in = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
buf.append(line + "\n");
}
in.close();
} catch (IOException e) {
e.printStackTrace();
}
Log.i("REST", "INPUT DATA:" + buf.toString());
httpURLConnection.disconnect();
}
}