Как опубликовать Bean List с помощью RestTemplate, но bean должен иметь байтовый массив? - PullRequest
0 голосов
/ 22 мая 2019

У меня есть два отдельных проекта (RestApi Project, Client Project).У меня есть класс бина (вложение), и у него есть байт [].Я хочу опубликовать этот бин добавить список коллекции (список).Я разместил объект, но список пуст в отправленном методе (processStart ()).Примечание. Список не является нулевым в клиентском проекте.

**** Проект RestApi ****

public class Attachment {
    private String fileName;
    private String extension;
    private byte[] file;

    //getter and setter
}

public class OnlineRuhsatBean {
    private List<Attachment> attachmentList = new ArrayList<>(); 

    //getter and setter
}


@RestController
@RequestMapping("/api/online")
public class OnlineRestService {

   @PostMapping
   public ResponseEntity<String> processStart(@RequestBody OnlineRuhsatBean onlineRuhsatBean){
      //some codes
   }
}

**** Клиентский проект ****

public class Attachment {
    private String fileName;
    private String extension;
    private byte[] file;

    //getter and setter
} 



public class Ruhsat {
    private List<Attachment> attacment;

    //getter and setter
}


public class EbysRestClient {
 private HttpHeaders postHeader (){
    HttpHeaders headers = new HttpHeaders();
    headers.add("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) 
    AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 
    Safari/537.36");
    headers.add("X-CSRF-TOKEN",  csrfToken); 
    headers.add("JSESSIONID",  jSessionId);
    headers.add("Cookie",  cookie);
    headers.add("Content-Type",  "application/json");

    return headers;
 }


 public String postRuhsat (Ruhsat ruhsat){
    RestTemplate restTemplate = new RestTemplate();

    String applyNum = "";  
    HttpEntity<Ruhsat> request = new HttpEntity<>(ruhsat,postHeader());
    ResponseEntity response = restTemplate.exchange("localhost:8080/ebys/api/online/", HttpMethod.POST, request, String.class);
    //ResponseEntity response = restTemplate.postForObject(appProperties.getRuhsatRestUrl(), request, ResponseEntity.class);
    //I try above code even so null in restapi project
    if (response.getStatusCode() == HttpStatus.OK){
        applyNum = response.getBody().toString();
        postFile(ruhsat, applyNum);
    }

    return applyNum;
    }
 }

1 Ответ

0 голосов
/ 22 мая 2019

Соглашение для такого рода вещей заключается в том, чтобы кодировать двоичные данные в Base64 и помещать их в виде строки, я предлагаю вам сделать это очень просто:)

https://docs.oracle.com/javase/8/docs/api/java/util/Base64.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...