現在、いくつかのミドルウェアへの接続が確立されており、それを介して SQL クエリをデータベースに送信しています。
DataInputStream を使用可能な形式 (文字列であるかどうかにかかわらず) に変換する際に問題が発生しています。別の StackOverflow questionを見ましたが、使用して以来、これで問題は解決しませんでした
in.readLine();
それが何を意味するにせよ、「非推奨」です。ミドルウェアからの応答を読み取ることができる必要があります。
private class NetworkTask extends AsyncTask<String, Void, Integer>
{
protected Integer doInBackground(String... params)
{
Message message = networkHandler.obtainMessage();
String ip = "example ip";
int port = 1234;
try
{
InetAddress serverAddr = InetAddress.getByName(ip);
Log.d("EventBooker", "C: Connecting...");
Socket socket = new Socket(serverAddr, port);
DataInputStream in = new DataInputStream(socket.getInputStream());
try
{
Log.d("EventBooker", "C: Connected. Sending command.");
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
out.println(params[0]);
networkHandler.sendMessage(message);
Log.d("EventBooker", "C: Sent.");
}
catch (Exception e)
{
Log.e("EventBooker", "S: Error", e);
}
Log.d("EventBooker", "C: Reading...");
Log.d("EventBooker", "C: Response read, closing.");
socket.close();
Log.d("Eventbooker", "C: Closed.");
}
catch (Exception e)
{
Log.e("EventBooker", "C: Error", e);
}
return 1;
}
}