0

もう一度質問したいと思いました。Android からアクセスできる安らかな Web サービスを開発していますが、2 週間前から問題があります。データベースからバイト配列を取得するサービスを作成し、これをファイルに書き込んで、Android からこのサービスを使用できるようにしたいと考えています。Android では、このファイルを取得し、このバイトを使用してグラフをプロットします。

ヒントを教えてください!!

ありがとうございました

4

1 に答える 1

1

Web API はあなたの場合に適したオプションです。原因はそれを使用するのが非常に簡単で、単純なストリームを送信するだけで済みます。次に、Web サービスを使用するためにアプリで独自の RestClient を作成します。ここでは、HttpClient を使用して実行するコードがいくつかあります。これ:

public void executeRequest(HttpUriRequest request, String url)  {
    HttpClient client = new DefaultHttpClient();
    HttpResponse httpResponse;

    try{
       httpResponse = client.execute(request);
       responseCode = httpResponse.getStatusLine().getStatusCode();

       HttpEntity entity = httpResponse.getEntity();
       if (entity != null)
       {
           InputStream in = entity.getContent();
           response = convertStreamToString(in);
           in.close();
       }
    } catch (ClientProtocolException e)  {
        client.getConnectionManager().shutdown();
        e.printStackTrace();
    } catch (IOException e) {
        client.getConnectionManager().shutdown();
        e.printStackTrace();
    }       
}

private static String convertStreamToString(InputStream is) {

    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    StringBuilder sb = new StringBuilder();

    String line = null;
    try {
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return sb.toString();
}

これにより、必要なデータを取得するために GET リクエストを渡すことができます。クエリ文字列に追加のパラメーターを追加する必要がある場合は、これも有効です。

public void Execute(RequestMethod method) throws Exception
    {

                String combinedParams = "";
                if  (!params.isEmpty())
                {
                    combinedParams += "?";

                    for (NameValuePair p : params)
                    {
                        String paramString = p.getName() + "=" + URLEncoder.encode(p.getValue(),"UTF-8");

                        if  (combinedParams.length() > 1)
                            combinedParams += "&" + paramString;
                        else
                            combinedParams += paramString;
                    }
                }

                HttpGet request = new HttpGet(url + combinedParams);

                for (NameValuePair h : headers)
                    request.addHeader(h.getName(),h.getValue());

                executeRequest(request, url);
于 2012-10-01T21:30:36.107 に答える