Dominando o CLIENT HTTP do JAVA 11!

  Рет қаралды 5,230

RinaldoDev

RinaldoDev

Күн бұрын

Desde o JAVA 9, e consolidado no JAVA 11, temos o novo cliente HTTP! Nesse vídeo vamos finalizar a explicação da nova API, aprendendo como fazer POST e PUT, baixar arquivos e trabalhar com InputStreams!
🟢 Apoie o canal! Seja membro para ajudar que mais cursos gratuitos continuem sendo criados!
/ @rinaldodev
💢 PLAYLIST RELACIONADA: • Curso Panorama Java 9 ...
Quer ter acesso a conteúdo para melhorar seu código?!
🟥 Se inscreva no canal: www.youtube.co...
Me acompanhe nas outras redes:
🔸 Twitter: / rinaldodev
🔸 LinkedIn: / rinaldodev
🔸 GitHub: github.com/rin...
🔸 Site/Blog: rinaldo.dev
🔸 Facebook: / rinaldodev
🔸 Twich: / rinaldodev
Dúvidas ou sugestões? Deixe um comentário!
Aprendeu com esse vídeo? Então compartilhe com outros desenvolvedores!
🖤 Código no GitHub: github.com/rin...
Música: www.bensound.com

Пікірлер: 42
@MrIngridSilva
@MrIngridSilva Жыл бұрын
Sensacional! Ansiosa para o panorama java 12 à 19☺
@davipessoa7840
@davipessoa7840 2 жыл бұрын
Muito interessante e realmente é simples até pra quem ver de primeira vez. Achei interessante a introdução de abordagem de manipulação de arquivos, upload e download o que seria um conteúdo bacana de se fazer tendo que é algo mais incomum.
@brunosoares6657
@brunosoares6657 2 жыл бұрын
Mais 1 inscrito, excelente conteudo!
@wldomiciano
@wldomiciano 2 жыл бұрын
Valeu, Rinaldo. Excelente explicação, cobriu bastante coisa. Por volta do instante 17:19 vc comenta sobre quão horrível é colocar o try-catch ali. Eu queria saber como seria uma forma mais elegante de lidar com esta situação. Será que se eu criasse um método separado e dentro dele tratar a exceção devolvendo um array de bytes vazio já seria suficiente? Seria algo assim: static byte[] convertToString(InputStream value) { try { return value.readAllBytes(); } catch (IOException e) { return new byte[0]; } } E usaria assim: client .sendAsync(request, BodyHandlers.ofInputStream()) .thenApply(HttpResponse::body) .thenApply(Application::convertToString);
@rinaldodev
@rinaldodev 2 жыл бұрын
Fala, Wellington! Essa é uma opção boa. Pode estar em uma classe utilitária também, se você acabar fazendo isso demais.
@wldomiciano
@wldomiciano 2 жыл бұрын
@@rinaldodev Beleza, então. Muito obrigado pela resposta!
@luarapavam4646
@luarapavam4646 Жыл бұрын
Ola Rinaldo primeiramente muito obrigado pela ajuda...gostaria de saber uma coisa essa resposta em json eu consigo colocar ela dentro de atributos de uma classe
@caioargentino5307
@caioargentino5307 3 жыл бұрын
Que conteúdo bom! Muito obrigado pelos videos do seu canal, ajudam muito a aprender Java!
@rinaldodev
@rinaldodev 3 жыл бұрын
Valeu!
@renatorodrigues5886
@renatorodrigues5886 3 жыл бұрын
Cara muito obrigado pelo video, muito bom ser membro do seu Canal !!!
@rinaldodev
@rinaldodev 3 жыл бұрын
Valeu, Renato! Que bom que curtiu!
@PauloHenrique182
@PauloHenrique182 3 жыл бұрын
Video muito bom, brigadao Rinaldo por esse conteudo master sobre Java, estavamos precisando.
@rinaldodev
@rinaldodev 3 жыл бұрын
Boa, Paulo!
@lucas_couto
@lucas_couto 7 ай бұрын
Show
@wendelberggoldneralves5910
@wendelberggoldneralves5910 3 жыл бұрын
Parabéns Rinaldo! Tenho aprendido muito contigo! Você tem algum video ou se você poderia fazer um video sobre request em APIs SOAP ?
@rinaldodev
@rinaldodev 3 жыл бұрын
Valeu! Vou deixar anotada a sugestão, mas não tenho previsão. :)
@guilhermecosta9613
@guilhermecosta9613 2 жыл бұрын
Como eu pego um valor específico do response? Se eu fizer uma requisição que retorna o nome do produto, como eu pego o valor do campo "nome"?
@wmdn29
@wmdn29 3 ай бұрын
E como fazer o retorno da API entrar como um objeto especifico (User, Product, etc)?
@luan252518
@luan252518 2 жыл бұрын
Feliz Natal! Poderia fazer um conteudo sobre SSL e Certificados!
@rinaldodev
@rinaldodev 2 жыл бұрын
Boa sugestão!
@luan252518
@luan252518 2 жыл бұрын
​@@rinaldodev trabalho como dev Back-End do Santander e temos que integrar com alguns fornecedores que utilizam essa camada de proteção, ensino e apoio meus devs na integração, mas seria legal ter um conteudo avançado e bem explicado que nem voce consegue fazer! para passar para eles!
@kauanmocelin
@kauanmocelin Жыл бұрын
Ótima explicação Rinaldo. Porém essa nova api do http client me deixou na mão quando precisei de um multipart/form-data, precisei implementar na mão o body da requisição enquanto na lib da apache já vem tudo pronto. Achei uma falha gigante deixarem de fora isso, em pleno 2023 ter que reinventar a roda criando template do body na mão é inadmissível.
@marcosgarcia179
@marcosgarcia179 3 жыл бұрын
excelente
@rinaldodev
@rinaldodev 3 жыл бұрын
Valeu, Marcos!
@pedromedeiros6907
@pedromedeiros6907 3 жыл бұрын
Rinaldo, em 17:13 você diz que não é indicado colocar esse try catch, então, de que forma o tratamento dessa exceção deveria ser realizado?
@rinaldodev
@rinaldodev 3 жыл бұрын
Fala, Pedro! Na verdade pode fazer o try-catch, só fica ruim a sintaxe assim, em linha. é melhor criar um método, ou bloco lambda, com esse conteúdo dentro e separado, aí você só chama ele aí nesse ponto.
@arozendojr
@arozendojr 3 жыл бұрын
olhando para o passado, me desculpe o cheiro de naftalina, quando tentei fazer isso no java 7, recebo um erro de java.net.SocketException: Connection reset, em outros endPoint funciona com java 7, quando mudo para java 8 funciona tudo, sabe o que poderia ser do java 7 para o java 8?
@rinaldodev
@rinaldodev 3 жыл бұрын
Fala, Antônio! Não entendi, é quando vai fazer o que exatamente? Essa API que estou mostrando no vídeo começou no Java 9 e só foi oficializada no Java 11!
@arozendojr
@arozendojr 3 жыл бұрын
@@rinaldodev Usando o código postman , dentro do main(), executando client.newCall(request).execute(). No java 7, resultado Connection reset , só trocando para Java 8 funciona. Connection reset não sei o que tem no java 7 para retornar esse erro
@samuelffn2
@samuelffn2 2 жыл бұрын
Fantástico o vídeo, parabéns. Estou com uma dúvida, quando eu preciso usar alguns Headers, como Connection, Content-Length ele me retorna um erro, por exemplo: restricted header name: "Content-Length". Como resolver para usar esses cabeçalhos proibidos? Obrigado, abraço
@rinaldodev
@rinaldodev 2 жыл бұрын
Teoricamente esses headers não precisam ser aplicados manualmente pelo programador, e por isso são restritos. O cliente HTTP preenche esses headers com os valores corretos. Caso você ainda assim queira sobrescrever esse comportamento (e pode ter erros por conta disso), a partir do Java 12 foi criada uma propriedade que permite isso: jdk.httpclient.allowRestrictedHeaders Você pode definir a propriedade ao executar a aplicação ou programaticamente com: System.setProperty("jdk.httpclient.allowRestrictedHeaders", "Connection,Content-Length");
@samuelffn2
@samuelffn2 2 жыл бұрын
@@rinaldodev valeu pela resposta. O pior que precise setar mesmo esses headers :( Bom, nesse caso vou ter que testar numa versão mais nova do Java. Abraço!
@danroxha
@danroxha 3 жыл бұрын
Muito bom
@rinaldodev
@rinaldodev 3 жыл бұрын
Valeu, Daniel!
@mecetnoca
@mecetnoca 3 жыл бұрын
Olá. Como se faz para fazer o submit de uma pagina de login/senha e pegar o conteúdo da proxima página de boas vindas dessa forma via código? Sei que existe o selenium e tal, mas é possível fazer isso com o HttpClient? Abraços
@rinaldodev
@rinaldodev 3 жыл бұрын
É possível fazer com HttpClient, porém páginas de autenticação sempre contém alguns mecanismos de segurança que tornam isso uma tarefa mais complexa. O ideal é inspecionar as requisições HTTP que são realizadas durante o login usando, por exemplo, o DevTools do Chrome. Depois de entender o fluxo, implentá-lo no HttpClient é mais fácil.
@mecetnoca
@mecetnoca 3 жыл бұрын
@@rinaldodev Bacana, eu varei a internet para ver algo e não encontrei, se possível vc poderia postar algum exemplo? Obrigado!
@marlosiguatu
@marlosiguatu 2 жыл бұрын
como envio o token de uma api que exige autenticação?
@hectorlima6049
@hectorlima6049 2 жыл бұрын
Up
@lehfelixx
@lehfelixx 2 жыл бұрын
Excelente! Só estou tendo um problema, estou enviando um json no body para uma outra aplicação, eu tenho um arquivo cvs que trato no spark formatando ele para json, se o arquivo for pequeno vai de boa, mas se eu enviar uma massa grande (Que resulta em um mega json) da erro, Caused by: java.nio.channels.ClosedChannelException se puder da uma luz agradeço rs abraço!
@rinaldodev
@rinaldodev 2 жыл бұрын
Tá usando BodyPublisher de InputStream?
@lehfelixx
@lehfelixx 2 жыл бұрын
@@rinaldodev não, estou usando o de String, a variável dataSetToJson é uma String, ta assim... HttpRequest request = HttpRequest.newBuilder() .POST(HttpRequest.BodyPublishers.ofString(dataSetToJson)) .uri(URI.create("localhost:8088/doc")) .headers("Accept", "application/json") .build(); HttpClient .newBuilder() .build() .send(request, HttpResponse.BodyHandlers.ofString());
Beans CDI e TESTE de API REST com o QUARKUS!
26:11
RinaldoDev
Рет қаралды 7 М.
Conheça o NOVO e melhorado CLIENT HTTP do JAVA 11!
17:52
RinaldoDev
Рет қаралды 10 М.
Сестра обхитрила!
00:17
Victoria Portfolio
Рет қаралды 958 М.
Quilt Challenge, No Skills, Just Luck#Funnyfamily #Partygames #Funny
00:32
Family Games Media
Рет қаралды 55 МЛН
Sigma Kid Mistake #funny #sigma
00:17
CRAZY GREAPA
Рет қаралды 30 МЛН
Don’t Choose The Wrong Box 😱
00:41
Topper Guild
Рет қаралды 62 МЛН
Preparando sua aplicação QUARKUS para produção!
27:07
RinaldoDev
Рет қаралды 5 М.
How to call a Java REST API using JDK Http Client
22:23
Dan Vega
Рет қаралды 11 М.
Começando a usar o QUARKUS!
21:52
RinaldoDev
Рет қаралды 24 М.
Métodos STATIC em INTERFACES melhoram seu código!
20:51
RinaldoDev
Рет қаралды 4,4 М.
Сестра обхитрила!
00:17
Victoria Portfolio
Рет қаралды 958 М.