下面列出了怎么用org.apache.http.HttpMessage的API类实例代码及写法,或者点击链接到github查看源代码。
protected void setHeaders(final HttpMessage base, final String headers) throws IOException {
try (BufferedReader reader = new BufferedReader(new StringReader(headers))) {
String line = reader.readLine();
while (line != null) {
int colonIndex = line.indexOf(':');
if (colonIndex > 0) {
String headerName = line.substring(0, colonIndex);
if (line.length() > colonIndex + 2) {
base.addHeader(headerName, line.substring(colonIndex + 1));
} else {
base.addHeader(headerName, null);
}
line = reader.readLine();
} else {
throw new FlowableException(HTTP_TASK_REQUEST_HEADERS_INVALID);
}
}
}
}
private String generateViaHeader(HttpMessage msg) {
final VersionInfo vi = VersionInfo.loadVersionInfo(
"org.apache.http.client", getClass().getClassLoader());
final String release = (vi != null) ? vi.getRelease()
: VersionInfo.UNAVAILABLE;
final ProtocolVersion pv = msg.getProtocolVersion();
if ("http".equalsIgnoreCase(pv.getProtocol())) {
return String.format(
"%d.%d localhost (Apache-HttpClient/%s (cache))",
pv.getMajor(), pv.getMinor(), release);
} else {
return String.format(
"%s/%d.%d localhost (Apache-HttpClient/%s (cache))",
pv.getProtocol(), pv.getMajor(), pv.getMinor(), release);
}
}
public static void add(HttpMessage httpMessage, Headers headers) {
for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
for (String value : entry.getValue()) {
httpMessage.addHeader(entry.getKey(), value);
}
}
}
public static Headers get(HttpMessage httpMessage) {
Headers headers = new Headers();
for (Header header : httpMessage.getAllHeaders()) {
headers.add(header.getName(), header.getValue());
}
return headers;
}
private void addCookies(HttpRequest request, HttpMessage msg) {
Map<String, String> cookies = request.getCookies();
if (cookies == null || cookies.isEmpty()) {
return;
}
StringBuilder sb = new StringBuilder();
for (Map.Entry<String, String> entry : cookies.entrySet()) {
sb.append(entry.getKey()).append("=").append(entry.getValue()).append(";");
}
msg.addHeader("Cookie", sb.substring(0, sb.length()));
}
private void addHeaders(HttpRequest request, HttpMessage msg) {
Map<String, String> headers = request.getHeaders();
if (headers != null && !headers.isEmpty()) {
for (Map.Entry<String, String> entry : headers.entrySet()) {
msg.addHeader(entry.getKey(), entry.getValue());
}
}
}
public static Optional<String> getFirstHeaderValue(HttpMessage req, String name) {
Header[] header = req.getHeaders(name);
if(header.length > 0) {
return Optional.of(header[0].getValue());
}
return Optional.empty();
}
/**
* 设置Http头部,同时添加上公共的类型,长连接,COS SDK标识
*
* @param message HTTP消息
* @param headers 用户额外添加的HTTP头部
*/
private void setHeaders(HttpMessage message, Map<String, String> headers) {
message.setHeader(RequestHeaderKey.ACCEPT, RequestHeaderValue.Accept.ALL);
message.setHeader(RequestHeaderKey.CONNECTION, RequestHeaderValue.Connection.KEEP_ALIVE);
message.setHeader(RequestHeaderKey.USER_AGENT, this.config.getUserAgent());
if (headers != null) {
for (String headerKey : headers.keySet()) {
message.setHeader(headerKey, headers.get(headerKey));
}
}
}
/**
* 设置Http头部,同时添加上公共的类型,长连接,COS SDK标识
*
* @param message
* HTTP消息
* @param headers
* 用户额外添加的HTTP头部
*/
private void setHeaders(HttpMessage message, Map<String, String> headers) {
message.setHeader(RequestHeaderKey.ACCEPT, RequestHeaderValue.Accept.ALL);
message.setHeader(RequestHeaderKey.CONNECTION, RequestHeaderValue.Connection.KEEP_ALIVE);
message.setHeader(RequestHeaderKey.USER_AGENT, this.config.getUserAgent());
if (headers != null) {
for (String headerKey : headers.keySet()) {
message.setHeader(headerKey, headers.get(headerKey));
}
}
}
public static void add(HttpMessage httpMessage, Headers headers) {
for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
for (String value : entry.getValue()) {
httpMessage.addHeader(entry.getKey(), value);
}
}
}
public static Headers get(HttpMessage httpMessage) {
Headers headers = new Headers();
for (Header header : httpMessage.getAllHeaders()) {
headers.add(header.getName(), header.getValue());
}
return headers;
}
protected boolean hasCacheControlParameterFrom(HttpMessage msg,
String[] params) {
Header[] cacheControlHeaders = msg
.getHeaders(HeaderConstants.CACHE_CONTROL);
for (Header header : cacheControlHeaders) {
for (HeaderElement elem : header.getElements()) {
for (String param : params) {
if (param.equalsIgnoreCase(elem.getName())) {
return true;
}
}
}
}
return false;
}
public static void header(HttpMessage msg, String key, String value) {
if (value != null) {
msg.addHeader(key, value);
}
}
public static void authorizationHeader(HttpMessage msg, String token) {
if (token != null) {
msg.addHeader("Authorization", "Bearer " + token);
}
}
public static void authorizationHeader(HttpMessage msg, String username, String password) {
if (username != null && password != null) {
msg.addHeader("Authorization", encodeBaseAuthHeader(username, password));
}
}
private Optional<Header> getBearerHeader(final HttpMessage message, final String headerName) {
return Arrays.stream(message.getHeaders(headerName))
.filter(header -> header.getValue().startsWith(BEARER_SCHEME))
.findAny();
}
protected void logMessage(HttpMessage message) {
if (fLogger.isDebugEnabled()) {
fLogger.debug(message.toString());
}
}
/**
* Obtains the Http message.
*
* @return Http message
*/
public HttpMessage getMessage() {
return message;
}
/**
* Configures the Http message.
*
* @param message Http message
*/
public void setMessage(HttpMessage message) {
this.message = message;
}