All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.ipokerface.weixin.request.http.simple.SimpleHttpResponse Maven / Gradle / Ivy

There is a newer version: 1.5.0
Show newest version
package cn.ipokerface.weixin.request.http.simple;

import cn.ipokerface.weixin.request.http.AbstractHttpResponse;
import cn.ipokerface.weixin.request.http.HttpHeaders;
import cn.ipokerface.weixin.request.http.HttpStatus;
import cn.ipokerface.weixin.request.http.HttpVersion;

import java.io.IOException;
import java.net.HttpURLConnection;
import java.util.List;
import java.util.Map;

/**
 * Created by       PokerFace
 * Create Date      2019-12-27.
 * Email:           [email protected]
 * Version          1.0.0
 * 

* Description: */ public class SimpleHttpResponse extends AbstractHttpResponse { private final HttpURLConnection connection; private HttpHeaders headers; private HttpVersion protocol; private HttpStatus status; public SimpleHttpResponse(HttpURLConnection connection, byte[] content) { super(content); this.connection = connection; } public HttpVersion getProtocol() { String version = connection.getHeaderField(null); if (version == null) { return null; } if (protocol == null) { if (version.contains(HttpVersion.HTTP_1_0_STRING)) { protocol = HttpVersion.HTTP_1_0; } else if (version.contains(HttpVersion.HTTP_1_1_STRING)) { protocol = HttpVersion.HTTP_1_1; } else { String connect = connection.getHeaderField("Connection"); protocol = new HttpVersion(version, KEEP_ALIVE.equalsIgnoreCase(connect)); } } return protocol; } public HttpHeaders getHeaders() { if (headers == null) { headers = new HttpHeaders(); Map> headerFields = connection .getHeaderFields(); for (Map.Entry> headerEntry : headerFields .entrySet()) { headers.put(headerEntry.getKey(), headerEntry.getValue()); } } return headers; } public HttpStatus getStatus() { if (status == null) { try { status = new HttpStatus(connection.getResponseCode(), connection.getResponseMessage()); } catch (IOException e) { throw new RuntimeException("I/O Error on getStatus", e); } } return status; } public void close() { connection.disconnect(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy