0

解決策を見つけるのを手伝ってください:

URL(以下)を呼び出すと、サーバーは次のようなものを提供します:

"Name", "Date" "Peter", "01.01.2013" "Paul", "12.12.2012"

したがって、サーバーは SQL テーブルをテキストとして提供します。これをリクエストして、文字列に変換しようとしました。しかし、アプリを実行すると、文字列は空です。

URL を正しくエンコードしましたか?
リクエストを正しく処理しましたか?

URL は次のとおりです。

http://IP/query.html?sql="select * from ADAnreden"

Log.d によって投稿された URL は次のとおりです。

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() : "";
    }
}

編集:

ブラウザでのサンプル リクエストを次に示します (この場合は行のみであるため、 , はありません)。

ここに画像の説明を入力

4

1 に答える 1