asp.net httpclient post 请求头_Java11的HttpClient的使用

get 同步和异步请求

#同步   public void testGet() throws IOException, InterruptedException {        HttpClient client = HttpClient.newHttpClient();        HttpRequest request = HttpRequest.newBuilder()                .uri(URI.create("https://www.toutiao.com"))                .build();        HttpResponse response =                client.send(request, HttpResponse.BodyHandlers.ofString());    }#异步    public void testAsyncGet() throws ExecutionException, InterruptedException {        HttpClient client = HttpClient.newHttpClient();        HttpRequest request = HttpRequest.newBuilder()                .uri(URI.create("https://www.baidu.com"))                .build();        CompletableFuture result = client.sendAsync(request, HttpResponse.BodyHandlers.ofString())                .thenApply(HttpResponse::body);        System.out.println(result.get());    }

post

#json提交    public void testPostJsonGetJson() throws ExecutionException, InterruptedException, JsonProcessingException {        ObjectMapper objectMapper = new ObjectMapper();        StockDto dto = new StockDto();        dto.setName("hj");        dto.setSymbol("hj");        dto.setType(StockDto.StockType.SH);        String requestBody = objectMapper                .writerWithDefaultPrettyPrinter()                .writeValueAsString(dto);        HttpRequest request = HttpRequest.newBuilder(URI.create("http://toutiao/test/"))                .header("Content-Type", "application/json")                .POST(HttpRequest.BodyPublishers.ofString(requestBody))                .build();        CompletableFuture result = HttpClient.newHttpClient()                .sendAsync(request, HttpResponse.BodyHandlers.ofString())                .thenApply(HttpResponse::body)                .thenApply(body -> {                    try {                        return objectMapper.readValue(body,StockDto.class);                    } catch (IOException e) {                        return new StockDto();                    }                });    }#form提    

Authentication

package com.mkyong.http;import java.io.IOException;import java.net.Authenticator;import java.net.PasswordAuthentication;import java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;public class Java11HttpClientExample6 {    private final HttpClient httpClient = HttpClient.newBuilder()            .authenticator(new Authenticator() {                @Override                protected PasswordAuthentication getPasswordAuthentication() {                    return new PasswordAuthentication(                            "user",                            "password".toCharArray());                }            })            .build();    public static void main(String[] args) throws IOException, InterruptedException {        Java11HttpClientExample6 obj = new Java11HttpClientExample6();        obj.sendGET();    }    private void sendGET() throws IOException, InterruptedException {        HttpRequest request = HttpRequest.newBuilder()                .GET()                .uri(URI.create("http://localhost:8080/books"))                .setHeader("User-Agent", "Java 11 HttpClient Bot") // add request header                .build();        HttpResponse response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());        // print status code        System.out.println(response.statusCode());        // print response body        System.out.println(response.body());    }}

redirect

private final HttpClient httpClient = HttpClient.newBuilder()            .followRedirects(HttpClient.Redirect.NEVER)            .build();

Timeout

private final HttpClient httpClient = HttpClient.newBuilder()            .connectTimeout(Duration.ofSeconds(5))            .build();

Proxy

private final HttpClient httpClient = HttpClient.newBuilder()            .proxy(ProxySelector.of(new InetSocketAddress("your-company-proxy.com", 8080)))            .build();
2a19d6aed29e19b32aba7cc4533e3bab.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值