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