ໃຊ້ HTTP ພຣັອກຊີໃນ Java HttpClient
ສົ່ງ ProxySelector ໃຫ້ຕົວສ້າງ HTTP client ຂອງ Java ແລະແຍກເວລາລໍຖ້າການເຊື່ອມຕໍ່ຈາກເວລາລໍຖ້າຄຳຂໍ.
ສຳລັບ Java 11 ຫຼືໃໝ່ກວ່າ ໃຫ້ຕັ້ງ ProxySelector ຢູ່ຕົວສ້າງໄຄເອັນ. ວິທີນີ້ບໍ່ປ່ຽນພຣັອບເພີຕີພຣັອກຊີຂອງ JVM ທັງໝົດ:
import java.net.InetSocketAddress;
import java.net.ProxySelector;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;
public class ProxyExample {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newBuilder()
.proxy(ProxySelector.of(
new InetSocketAddress("203.0.113.10", 8080)))
.connectTimeout(Duration.ofSeconds(5))
.build();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com/"))
.timeout(Duration.ofSeconds(15))
.GET()
.build();
HttpResponse<String> response = client.send(
request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}ປ່ຽນຈຸດຕົວຢ່າງໃນເອກະສານເປັນ HTTP ພຣັອກຊີຂອງທ່ານ; ລາຍຊື່ HTTP ພຣັອກຊີມີຕົວເລືອກໃຫ້ລອງ. ProxySelector.of ຮັບທີ່ຢູ່ຊັອກເກັດ: ໃຊ້ໂຮສໂດຍບໍ່ມີຄຳນຳໜ້າ http:// ແລະລະບຸພອດແຍກຕ່າງຫາກ. ມັນເລືອກ HTTP ພຣັອກຊີ ບໍ່ແມ່ນ SOCKS ຕາມໝາຍເລກພອດ. URI ຂອງຄຳຂໍຍັງເປັນປາຍທາງຈິງ.
HTTPS ສາມາດຜ່ານ HTTP ພຣັອກຊີນີ້ດ້ວຍອຸໂມງ. ບໍ່ຕ້ອງຫຼຸດລະດັບຄວາມປອດໄພຂອງປາຍທາງ ແລະການຕັ້ງຄ່ານີ້ບໍ່ໄດ້ໝາຍຄວາມວ່າຕົວຮັບຂອງພຣັອກຊີເອງຮອງຮັບ TLS.
ເວລາລໍຖ້າການເຊື່ອມຕໍ່ຂອງຕົວສ້າງໄຄເອັນໃຊ້ຕອນສ້າງການເຊື່ອມຕໍ່; ຄຳຂໍມີເວລາລໍຖ້າຂອງຕົນ. ຄວນລະບຸທັງສອງໃຫ້ຊັດ ເພາະຄຳຂໍອາດໃຊ້ການເຊື່ອມຕໍ່ເກົ່າຊ້ຳ. ຂໍ້ຍົກເວັ້ນເຄືອຂ່າຍ, ການຢືນຢັນຕົວຕົນ ຫຼືອຸໂມງອາດເກີດກ່ອນມີຄຳຕອບໃດຈາກປາຍທາງ ແຕ່ສະຖານະຜິດພາດທີ່ຕອບມາບໍ່ຈຳເປັນຕ້ອງເຮັດໃຫ້ເກີດຂໍ້ຍົກເວັ້ນ.
ໃຊ້ໄຄເອັນຊ້ຳສຳລັບຄຳຂໍທີ່ມີນະໂຍບາຍເສັ້ນທາງດຽວກັນ ເພື່ອໃຫ້ແອັບໄດ້ປະໂຫຍດຈາກການຈັດການການເຊື່ອມຕໍ່ຂອງມັນ.