Приложение Java / ответ сервера x-www-form-urlencoded - PullRequest
0 голосов
/ 06 января 2019

Я реализую свой собственный сервер Java HTTP / 1.1 и пытаюсь отправить данные через веб-форму, поэтому я установил

Content-Type: application/x-www-form-urlencoded
Accept: text/plain

со следующим значением в качестве тела

text=helloWorld

заголовки и получите следующий запрос на моем сервере

INFO: Received request:
Request Line:   POST /tolower HTTP/1.1
Request Type:   POST
Request Path:   /tolower
Headers 
    content-length: 15
    accept-language: en
    origin: chrome-extension://eejfoncpjfgmeleakejdcanedmefagga
    host: localhost:8082
    connection: keep-alive
    content-type: application/x-www-form-urlencoded
    dnt: 1
    accept-encoding: gzip, deflate, br
    user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
    accept: text/plain
Body:   text=helloWorld

Моя проблема в том, что запрос получен сервером, и я могу извлечь пару key=value, но когда я пытаюсь отправить ответ обратно, клиент не получает его.

Я пытаюсь отправить следующий ответ клиенту

HTTP/1.1 200 OK
Server: BIF-SWE1-Server
Content-Length: 20
Date: Sa, 05 Jan 2019 22:45:12 GMT
Content-Type: text/plain    

response from server

Я отправляю ответ обратно Outputstream

res.send(clientSocket.getOutputStream());

@Override
public void send(OutputStream outputStream) {
  Ensurer.ensureNotNull(outputStream, "outputstream");
  Ensurer.ensureNotNull(status, "status");
  Ensurer.ensureNotNull(headers, "headers");
  try {
    final StringBuilder finalRes = new StringBuilder();  

    finalRes.append(buildMessageStatusLine());
    finalRes.append(buildHeader());
    finalRes.append(LINE_SEPERATOR);
    finalRes.append(buildBody());  

    outputStream.write(finalRes.toString().getBytes(Charset.forName("UTF-8")));
  } catch (IOException e) {
    logger.log(Level.SEVERE, "Unexpected error " + e.getMessage(), e);
  }
}

но Клиент часами ждет ответа и не получает ответа.

Есть ли у вас какие-либо предложения или решения для меня?

...