Система Zero предоставляет простую аннотацию параметров для загрузки файлов в up.god. Эта аннотация должна быть применена к параметрам типа jakarta.ws.rs.StreamParam
. Система Zero автоматически поддерживает следующие типы преобразования:
byte[]
;io.vertx.core.buffer.Buffer
;java.io.File
;io.vertx.ext.web.FileUpload
.Для общих типов система Zero будет автоматически преобразовывать их, например, String в byte[] или byte[] в String.
package up.god.micro.params;
import io.vertx.core.buffer.Buffer;
import io.vertx.up.annotations.EndPoint;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import jakarta.ws.rs.StreamParam;
import java.nio.charset.Charset;
@EndPoint
@Path("/api")
public class StreamParamExecutor {
@Path("param/bytes")
@POST
public String sayBytes(@StreamParam final byte[] bytes) {
System.out.println(bytes.length);
return new String(bytes, Charset.defaultCharset());
}
@Path("param/buffer")
@POST
public String sayBuffer(@StreamParam final Buffer buffer) {
System.out.println(buffer.toString());
return buffer.toString();
}
}
......
[ ZERO ] ( 2 Event ) The endpoint up.god.micro.params.StreamParamExecutor scanned 2 events of Event, \
will be mounted to routing system.
......
[ ZERO ] ( Uri Register ) "/api/param/buffer" has been deployed by ZeroHttpAgent, Options = Route...
[ ZERO ] ( Uri Register ) "/api/param/bytes" has been deployed by ZeroHttpAgent, Options = Route...
......
URL: http://localhost:6083/api/param/bytes
Метод: POST
Запрос:
[{"username":"Lang","age":33}]
Ответ:
{
"data": "[{\"username\":\"Lang\",\"age\":33}]"
}
URL: http://localhost:6083/api/param/bytes
Метод: POST
Запрос:
Ответ:
{
"data": "\ufffdPNG\r\n\u001a\n\u0000\u0000\u0000\rIHDR.... ( Around 41500 bytes )"
}
Этот файл up.god представляет собой изображение размером 41 500 байт, и ответное тело отражает всё содержимое изображения.
URL: http://localhost:6083/api/param/buffer
Метод: POST
Запрос:
[{"username":"Lang","age":33}]
Ответ:
{
"data": "[{\"username\":\"Lang\",\"age\":33}]"
}
Этот пример имеет тот же результат, что и загрузка файла в 3.2, здесь игнорируется результат тестирования, потому что ответы во всех случаях одинаковы. Мы только изменили принимаемые типы параметров в @StreamParam.
В этом руководстве описывается, как принимать строки и файлы в виде байтовых массивов и буферов, все эти данные сохраняются в ваших параметрах. Затем мы рассмотрим некоторые продвинутые способы использования @StreamParam.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )