Я реализую свой собственный сервер 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);
}
}
но Клиент часами ждет ответа и не получает ответа.
Есть ли у вас какие-либо предложения или решения для меня?