/*******************************************************************************
* Created by Carlos Yaconi
* Copyright 2015 Prey Inc. All rights reserved.
* License: GPLv3
* Full license at "/LICENSE"
******************************************************************************/
package com.prey.net;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.util.List;
import java.util.Map;
import com.prey.PreyLogger;
public class PreyHttpResponse {
private int statusCode;
private String responseAsString;
private HttpURLConnection response;
private Map<String, List<String>> mapHeaderFields;
public PreyHttpResponse(HttpURLConnection connection) {
try {
this.response=connection;
this.statusCode = connection.getResponseCode();
this.responseAsString = convertStreamToString(connection.getInputStream());
PreyLogger.d("responseAsString:"+responseAsString);
} catch (IOException e) {
PreyLogger.d("Can't receive body stream from http connection, setting response string as ''");
this.responseAsString = "";
}
}
public PreyHttpResponse(int statusCode,String responseAsString) {
try {
this.response=null;
this.statusCode = statusCode;
this.responseAsString = responseAsString;
PreyLogger.d("responseAsString:"+responseAsString);
} catch (Exception e) {
PreyLogger.d("Can't receive body stream from http connection, setting response string as ''");
this.responseAsString = "";
}
}
public PreyHttpResponse(int statusCode,String responseAsString,Map<String, List<String>> mapHeaderFields) {
try {
this.response=null;
this.statusCode = statusCode;
this.responseAsString = responseAsString;
this.mapHeaderFields = mapHeaderFields;
PreyLogger.d("responseAsString:"+responseAsString);
} catch (Exception e) {
PreyLogger.d("Can't receive body stream from http connection, setting response string as ''");
this.responseAsString = "";
}
}
private String convertStreamToString(InputStream is) {
String out=null;
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
String line;
StringBuffer response = new StringBuffer();
while ((line = rd.readLine()) != null) {
response.append(line);
response.append('\r');
}
rd.close();
out=response.toString();
}catch(Exception e){
}
return out;
}
public int getStatusCode() {
return statusCode;
}
public String getResponseAsString() {
return responseAsString;
}
@Override
public String toString() {
return statusCode + " " + responseAsString;
}
public HttpURLConnection getResponse() {
return response;
}
public void setResponse(HttpURLConnection response) {
this.response = response;
}
public Map<String, List<String>> getMapHeaderFields() {
return mapHeaderFields;
}
}