HttpKit的get方法只返回String,没有返回Bytes的方法,有些场景无法使用,现在增加相关方法,希望下个版本能加入。
直接贴源代码:
public static byte[] getBytes(String url, Map<String, String> queryParas, Map<String, String> headers) {
HttpURLConnection conn = null;
try {
conn = getHttpConnection(buildUrlWithQueryString(url, queryParas), GET, headers);
conn.connect();
return readResponseByte(conn);
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
if (conn != null) {
conn.disconnect();
}
}
}
public static byte[] getBytes(String url, Map<String, String> queryParas) {
return getBytes(url, queryParas, null);
}
public static byte[] getBytes(String url) {
return getBytes(url, null, null);
}
private static byte[] readResponseByte(HttpURLConnection conn) {
InputStream inputStream = null;
ByteArrayOutputStream outStream = null;
try {
inputStream = conn.getInputStream();
outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = inputStream.read(buffer)) != -1) {
outStream.write(buffer, 0, len);
outStream.flush();
}
return outStream.toByteArray();
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (outStream != null) {
try {
outStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}