Я пытаюсь получить образец Netty HttpUploadServer для получения загруженного файла через HTTP PUT, код найден здесь: https://github.com/netty/netty/blob/master/example/src/main/java/io/netty/example/http/upload/HttpUploadServerHandler.java
Чтобы проверить загрузку файла HTTP POST, я использую эту команду curl:
curl -F "myfile=@testfile.txt" http://127.0.0.1:8080
Чтобы проверить загрузку файла HTTP PUT, я использую команду curl:
curl -T "testfile.txt" http://127.0.0.1:8080
Я закомментировал writeMenu и возвращаюсь, поскольку использую curl, а не веб-браузер.При использовании curl to POST все работает нормально, однако с PUT я не получаю никаких данных в readHttpDataAllRecieve (HttpUploadServerhandler):
private void readHttpDataAllReceive(Channel channel) {
List<InterfaceHttpData> datas = null;
try {
datas = decoder.getBodyHttpDatas();
System.out.println("size " + datas.size());
} catch (NotEnoughDataDecoderException e1) {
// Should not be!
e1.printStackTrace();
responseContent.append(e1.getMessage());
writeResponse(channel);
Channels.close(channel);
return;
}
for (InterfaceHttpData data: datas) {
writeHttpData(data);
}
responseContent.append("\r\n\r\nEND OF CONTENT AT FINAL END\r\n");
}
datas = decoder.getBodyHttpDatas ();Данные всегда имеют размер 0 с PUT, но не с POST.
Спасибо за любые идеи