Я создал метод, который перемещается вокруг и захватывает заголовки входящего запроса, а затем передает их объекту HttpPost, HttpGet и т. Д. В зависимости от того, какой метод запроса был :Общая реализация цели для HttpPost, HttpGet, HttpPut и т. Д.
protected HttpPost savePostData(HttpPost httpPost, HttpServletRequest servletRequest) throws UnsupportedEncodingException {
Enumeration<String> headerNames = servletRequest.getHeaderNames();
while (headerNames.hasMoreElements()) {
String headerName = headerNames.nextElement();
Enumeration<String> headers = servletRequest.getHeaders(headerName);
while (headers.hasMoreElements()) {
String headerValue = headers.nextElement();
httpPost.addHeader(headerName, headerValue);
}
}
StringEntity requestBody = new StringEntity(servletRequest.getParameter(parameterBody));
httpPost.setEntity(requestBody);
return httpPost;
}
И
protected HttpPut savePutData(HttpPut httpPut, HttpServletRequest servletRequest) throws UnsupportedEncodingException {
Enumeration<String> headerNames = servletRequest.getHeaderNames();
while (headerNames.hasMoreElements()) {
String headerName = headerNames.nextElement();
Enumeration<String> headers = servletRequest.getHeaders(headerName);
while (headers.hasMoreElements()) {
String headerValue = headers.nextElement();
httpPut.addHeader(headerName, headerValue);
}
}
StringEntity requestBody = new StringEntity(servletRequest.getParameter(parameterBody));
httpPut.setEntity(requestBody);
return httpPut;
}
Но я не хочу повторять код, и я не знаю, как сделать токен, который может служить универсальным аргументом.
Это кажется полезным. Как я могу это сделать? Должен ли я отбрасывать при возврате HttpEntityEnclosingRequestBase желаемому типу объекта? – DarkKunai99
Знайте, что это старый вопрос, но найти подходящее решение занимает время ... так, кто те, кто столкнулся с этим - используйте «HttpRequestBase» вместо «HttpEntityEnclosingRequestBase», – user5599807