Помогите пожалуйста найти решение:
Если я вызову URL-адрес (ниже), сервер предоставит мне что-то вроде этого:
"Name", "Date" "Peter", "01.01.2013" "Paul", "12.12.2012"
Итак, сервер предоставляет мне таблицу SQL в виде текста. Я попытался запросить это и преобразовать в строку. Но когда я запускаю приложение, строка пуста.
Правильно ли я закодировал URL?
Правильно ли я обработал запрос?
Вот URL:
http://IP/query.html?sql="select * from ADAnreden"
Вот URL-адрес, опубликованный Log.d:
http://IP/query.html?sql=%22select+*+from+ADAnreden%22
Вот мой код:
import java.io.BufferedInputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import android.util.Log;
public class Reader {
private String result = "leer";
String strUrl = "getURL: fehlgeschlagen";
private HttpURLConnection urlConnection;
public String getStringFromServer(){
String ip = "XYZ";
try {
String query = URLEncoder.encode("\"select * from ADAnreden\"", "utf-8");
strUrl = "http://"+ip+"/query.html?sql=" + query;
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.d(PACKAGE_NAME, "After getURL"+strUrl);
Thread thread = new Thread()
{
@Override
public void run() {
try {
URL url = new URL(strUrl);
urlConnection = (HttpURLConnection) url.openConnection();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
result = convertStreamToString(in);
} catch (Exception e) {
e.printStackTrace();
} finally {
urlConnection.disconnect();
}
}
};
thread.start();
return result;
}
static String convertStreamToString(java.io.InputStream is) {
java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A");
return s.hasNext() ? s.next() : "";
}
}
РЕДАКТИРОВАТЬ:
Вот пример запроса с браузером (в данном случае только строки, поэтому нет , )