Попытка получить доступ к данным httprequest со стороны сервера с использованием http-компонентов apache с Java - PullRequest
0 голосов
/ 15 сентября 2018

Я пытаюсь реализовать симуляцию клиента сервера, используя apache.httpcomponents. Ниже приведен код для клиента

    CloseableHttpClient httpclient = HttpClients.createDefault();

    HttpPost httpPost = new HttpPost("http://localhost:8080");
    List <NameValuePair> nvps = new ArrayList <NameValuePair>();
    nvps.add(new BasicNameValuePair("productionpart", this.getName()));
    nvps.add(new BasicNameValuePair("condition", p.Broken+""));
    httpPost.setEntity(new UrlEncodedFormEntity(nvps));
    CloseableHttpResponse response2 = httpclient.execute(httpPost);

    try {
        System.out.println(response2.getStatusLine());
        //HttpEntity entity2 = response2.getEntity();
        // do something useful with the response body
        // and ensure it is fully consumed
        //EntityUtils.consume(entity2);
    } finally {
        response2.close();
    }

Этот код работает. Однако я не могу найти способ получения данных о сущности на стороне сервера с помощью apache.httpcomponents. Мне удалось найти код в Интернете, который подтверждает, что сервер получает httprequests

        int port = 8080;
        ServerSocket serverSocket = new ServerSocket(port);
        System.out.println("Server Started and listening to the port 8080");

        while(true)
        {
            //Reading the message from the client
            socket = serverSocket.accept();
            InputStream is = socket.getInputStream();
            InputStreamReader isr = new InputStreamReader(is);
            BufferedReader br = new BufferedReader(isr);
            String number = br.readLine();
            System.out.println("Message received from client is "+number);

            OutputStream os = socket.getOutputStream();
            Scanner sc=new Scanner(System.in);
            String inp=null;
            String t="HTTP/1.1 200 OK\r\n";
            byte[]s=t.getBytes("UTF-8");
            os.write(s);

            t="Content-Length: 788\r\n";
            s=t.getBytes("UTF-8");
            os.write(s);
            t="Content-Type: text/html\r\n\r\n";
            s=t.getBytes("UTF-8");
            os.write(s);
        }

Однако я не могу получить доступ к данным объекта, так как он просто выводит длину и тип данных содержимого. Есть ли в любом случае доступ к данным в запросе httppost с сервера?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...