Можно конечно сделать по старинке, используя hasMoreElements()/nextElement():
Enumeration headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String headerName = (String)headerNames.nextElement();
// do smth...
}
но так делать не очень-то и хотелось. Вместо этого превратим Enumeration в java.util.ArrayList и уже
по нему будем совершать итерации:
List<String> headerNames = Collections.list((Enumeration<String>)request.getHeaderNames());
for (String headerName : headerNames) {
String headerValue = request.getHeader(headerName);
// do smth....
}
Ну, и напоследок, код метода, который выводит в строку все заголовки HTTP-запроса:
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Collections;
import java.util.Enumeraion;
public static String httpHeadersToString(HttpServletRequest request) {
List<String> headerNames = Collections.list((Enumeration<String>)request.getHeaderNames());
StringBuilder sb = new StringBuilder();
for (String headerName : headerNames) {
String headerValue = request.getHeader(headerName);
sb.append(headerName).append("='").append(headerValue).append("'\n");
}
return sb.toString();
}
Комментариев нет:
Отправить комментарий