[SPRING] retrofit에서 byte [] 배열을 보내는 법
SPRINGretrofit에서 byte [] 배열을 보내는 법
개조 호출에서 byte [] 배열을 어떻게 보냅니 까? byte []를 보내면됩니다. 나는 내가 개장 요청을 보내려고 할 때이 예외를 받는다.
추가 장착을 사용하여 전화를 걸 수있는 방법은 무엇입니까?
ByteMessage 객체 클래스에 캡슐화 된 ByteMessage로 단순히 바이트 배열을 전달했습니다.
public class ByteMessage {
private byte[] byteArray;
byte[] getByteArray(){
return byteArray;
}
setByteArray(byte[] bytes){
byteArray=bytes;
}
}
@POST("/send")
sendBytes(ByteMesssage msg);
server side
sendBytes(ByteMessage msg){
byte[] byteArray=msg.getByte();
...doSomething...
}
나는 스택 오버 플로우에 대한 리소스를 찾지 못했거나 추가 솔루션 호출을 통해 바이트 배열을 전달하는 적절한 해결책을 찾지 못했습니다.
아무도 이것으로 도움을받을 수 있습니까?
감사 Dhiren
해결법
-
==============================
1.이 목적을 위해 TypedByteArray를 사용할 수 있습니다.
이 목적을 위해 TypedByteArray를 사용할 수 있습니다.
개조 서비스는 다음과 같습니다.
@POST("/send") void upload(@Body TypedInput bytes, Callback<String> cb);
고객 코드 :
byte[] byteArray = ... TypedInput typedBytes = new TypedByteArray("application/octet-stream", byteArray); remoteService.upload(typedBytes, new Callback<String>() { @Override public void success(String s, Response response) { //Success Handling } @Override public void failure(RetrofitError retrofitError) { //Error Handling } });
"application / octet-stream"-이 MIME-TYPE 대신 데이터 포맷 유형을 사용하고 싶을 수도 있습니다. 여기에서 찾을 수있는 세부 정보 : http://www.freeformatter.com/mime-types-list.html
그리고 스프링 MVC 컨트롤러 (필요하다면) :
@RequestMapping(value = "/send", method = RequestMethod.POST) public ResponseEntity<String> receive(@RequestBody byte[] data) { //handle data return new ResponseEntity<>(HttpStatus.CREATED); }
-
==============================
2.retrofit2의 경우 :
retrofit2의 경우 :
@POST("/send") void upload(@Body RequestBody bytes, Callback<String> cb);
용법:
byte[] params = ... RequestBody body = RequestBody.create(MediaType.parse("application/octet-stream"), params); remoteService.upload(body, new Callback<String>() { @Override public void success(String s, Response response) { //Success Handling } @Override public void failure(RetrofitError retrofitError) { //Error Handling } });
from https://stackoverflow.com/questions/31325723/how-to-send-byte-array-in-retrofit by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring Boot에서 MappingJackson2HttpMessageConverter를 확장하여 사용자 정의 변환기를 추가하면 기존 변환기를 덮어 쓰는 것처럼 보입니다. (0) | 2019.07.17 |
---|---|
[SPRING] 스프링 부트 LDAP 사용자 정의 UserDetails (0) | 2019.07.17 |
[SPRING] 여러 개의 항아리에 freemarker 템플릿 (0) | 2019.07.17 |
[SPRING] Hibernate 엔터티 autowire (0) | 2019.07.17 |
[SPRING] 어떻게 사용자 정의 WebApplicationInitializer를 사용하여 테스트를 실행합니까? (0) | 2019.07.17 |