Моя команда пытается создать приложение, которое обнаруживает движение объекта и отправляет эту информацию (JSON) на сервер (серверная часть, использующая java).Я пытался получить данные JSON через сокет, но он показывает такого рода ошибки.Я использую почтальон для отправки JSON для тестирования.Другой вопрос - использовать tomcat для получения и публикации данных из браузера лучше, чем использовать сокет в этом сценарии?
public class ThreadedEchoServer {
static final int PORT = 5000;
public static void main(String args[]) {
ServerSocket serverSocket = null;
Socket socket = null;
try {
serverSocket = new ServerSocket(PORT);
} catch (IOException e) {
e.printStackTrace();
}
while (true) {
try {
socket = serverSocket.accept();
System.out.println("Client connect...");
} catch (IOException e) {
System.out.println("I/O error: " + e);
}
// new thread for a client
new EchoThread(socket).start();
}
}
}
public class EchoThread extends Thread {
protected Socket socket;
public EchoThread(Socket clientSocket) {
this.socket = clientSocket;
}
public void run() {
InputStream inp = null;
BufferedReader brinp = null;
PrintWriter out = null;
try {
inp = socket.getInputStream();
brinp = new BufferedReader(new InputStreamReader(inp));
// out = new PrintWriter(socket.getOutputStream(), true);
} catch (IOException e) {
return;
}
String line;
while (true) {
try {
line = brinp.readLine();
if ((line == null) || line.equalsIgnoreCase("QUIT")) {
socket.close();
return;
} else {
JSONObject json = new JSONObject(line);
System.out.println("Client: " + json.toString());
}
} catch (IOException e) {
e.printStackTrace();
return;
}
}
}
}
Вот json, который я использовал Postman для отправки запроса
{
"id": 963,
"result": "United States",
"cook": 30
}
Но я получил эту ошибку
Client connect...
Exception in thread "Thread-0" org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]
at org.json.JSONTokener.syntaxError(JSONTokener.java:505)
at org.json.JSONObject.<init>(JSONObject.java:215)
at org.json.JSONObject.<init>(JSONObject.java:399)
at EchoThread.run(EchoThread.java:34)