Tôi đang sử dụng httpclient được xây dựng để phát hành truy vấn "get" tới dịch vụ bên ngoài cần xác thực. Cụ thể hơn, tôi đang cố gắng gửi các truy vấn để chia nhỏ từ dịch vụ của mình. Làm cách nào để chuyển thông tin đăng nhập của người dùng vào yêu cầu? Tôi muốn sử dụng auth cơ bản thay vì xử lý các thẻ xác thực.http auth cơ bản với vert.x
5
A
Trả lời
15
Xác thực cơ bản là tất cả về Tiêu đề cấp phép.
Bạn nên thêm tiêu đề đó với giá trị bao gồm "cơ bản" (ghi chú trống) và thông tin đăng nhập của bạn: vượt qua (phân tách bằng dấu hai chấm) được mã hóa trong base64. Tính năng này chỉ an toàn nếu bạn đang sử dụng HTTPS.
Dưới đây là làm thế nào tôi có được điều này được thực hiện trong vert.x:
HttpClient client = vertx.createHttpClient().setSSL(true)
.setTrustAll(true) //You may not want to trust them all
.setHost("api.myawesomeapi.com")
.setPort(443);
HttpClientRequest clientRequest = client.get("/"+action+"/?"+params, new Handler<HttpClientResponse>() {
public void handle(final HttpClientResponse response) {
if (response.statusCode==200){
// It worked !
} else {
// Oops
}
}
});
clientRequest.putHeader(HttpHeaders.Names.AUTHORIZATION, "Basic "+base64key);
Ở đây tôi đã có base64key, nhưng nếu tôi đã phải tạo ra nó, tôi sẽ sử dụng một cái gì đó như:
base64key = Base64.encodeBytes(new StringBuilder(apiKey).append(":").append(secretKey).toString().getBytes(), Base64.DONT_BREAK_LINES);
Nếu bạn sử dụng POST thay vì nhận được, đừng quên thêm các tiêu đề bắt buộc:
clientRequest.putHeader(HttpHeaders.Names.CONTENT_LENGTH, String.valueOf(params.getBytes().length))
.putHeader(HttpHeaders.Names.CONTENT_TYPE, "application/x-www-form-urlencoded")
.write(params);
Tôi hy vọng nó giúp
Hugo
Các vấn đề liên quan
- 1. luồng em-http với lệnh auth và gzip cơ bản
- 2. auth cơ bản với đường ray-api
- 3. Node.js http basic auth
- 4. nhóm nginx http auth
- 5. apache toàn cầu cơ bản auth
- 6. Là auth cơ bản với SSL đủ an toàn?
- 7. RestTemplate với Auth cơ bản trong mùa xuân 3.1
- 8. Cơ bản HTTP Auth cho trang web lưu trữ AWS S3, tương tự như .htaccess
- 9. Ký tự UTF-8 bị xáo trộn trong tên người dùng Auth HTTP cơ bản
- 10. Netbeans Basic Http Auth Jax-WS
- 11. Gọi hàm auth cơ bản của tên miền chéo JQuery
- 12. . Autac cơ bản auth bởi máy chủ ảo?
- 13. Nhận tên người dùng cơ bản-auth trong php
- 14. Làm cách nào để sử dụng auth cơ bản với getObject của RestKit?
- 15. Cuộc gọi JQuery Ajax với Xác thực cơ bản HTTP
- 16. CORS và xác thực cơ bản HTTP
- 17. kiểm tra HTTP Basic Auth trong Rails 2.2 +
- 18. Làm thế nào để giữ cho Firefox không cho tên người dùng/mật khẩu với HTTP cơ bản Auth với JQuery AJAX?
- 19. Cơ chế ưu tiên cơ bản với HttpUrlConnection?
- 20. Xác thực HTTP cơ bản trong Go
- 21. httpget yêu cầu với auth
- 22. Cách sử dụng Xác thực HTTP cơ bản với REST webservice (Java + Jersey)?
- 23. cần mùa xuân an ninh java cấu hình ví dụ cho thấy auth cơ bản chỉ
- 24. HTTPS liên quan đến kết quả auth cơ bản vào Unauthorized
- 25. Hiển thị Sinatra Basic HTTP Auth On One Page Chỉ
- 26. Clustering and Shared Data trong Vert.x
- 27. Làm cách nào để yêu cầu auth HTTP Digest với Node.JS?
- 28. WSDL to PHP với Basic Auth
- 29. Cách nhận mật khẩu từ xác thực cơ bản HTTP
- 30. Yêu cầu HTTP có xác thực cơ bản
httpclient là một khuôn khổ Jakarta và có một số người khác gọi là điều tương tự. Có được xây dựng trong hỗ trợ cho URLConnection. Ý anh là gì? –
Tôi đang đề cập đến httpclinet được xây dựng trong vert.x được khởi tạo bởi: HttpClient httpClient = vertx.createHttpClient(); – user2312682