Pracuję nad programem Java, który implementuje klienta HTTP. Testuję to wysyłając żądania do serwera. Żądania GET, POST i DELETE działają poprawnie. Na przykład po żądaniu POST mam wyjścieUzyskiwanie "Wymagana długość 411" po żądaniu PUT od klienta HTTP
Data extracted:
{"status":{"message":"ok"}}
a baza danych odzwierciedla zmiany.
Po żądaniu PUT otrzymuję jednak następujący znacznik HTML strony internetowej wskazujący błąd.
Data extracted:
<html>
<head><title>411 Length Required</title></head>
<body bgcolor="white">
<center><h1>411 Length Required</h1></center>
<hr><center>nginx/1.2.6</center>
</body>
</html>
i odpowiednio brak zmian w bazie danych.
Znalazłem, że może to mieć coś wspólnego z nagłówkiem Content-Length, ale nie jestem pewien. Po próbie dodania tego nagłówka mój program czeka na minutę, a następnie generuje wyjątek informujący, że nie mógł obsłużyć odpowiedzi serwera.
Potrafię również podać kod lub ślad stosu, jeśli to konieczne.
Tak więc 'setHeader (" Content-Length "," "+ file.length())' resp. 'setContentLength ((int) file.length());' lub inaczej. –
Nie chcę przesyłać pliku. Po prostu próbuje przekazać adres URL z kilkoma parametrami, aby zaktualizować bazę danych. –
Długość treści 0 jako @ Sachin słusznie powiedział. –