HttpClient: Support for custom request content types.

This commit is contained in:
Andreas Schildbach 2015-09-01 00:07:47 +02:00
parent ccd0378be0
commit d6e03d7bc0
5 changed files with 90 additions and 80 deletions

View file

@ -269,13 +269,13 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
protected SuggestLocationsResult jsonStopfinderRequest(final Location constraint) throws IOException protected SuggestLocationsResult jsonStopfinderRequest(final Location constraint) throws IOException
{ {
final StringBuilder parameters = stopfinderRequestParameters(constraint, "JSON");
final StringBuilder uri = new StringBuilder(stopFinderEndpoint); final StringBuilder uri = new StringBuilder(stopFinderEndpoint);
if (!httpPost) final StringBuilder parameters = stopfinderRequestParameters(constraint, "JSON");
uri.append(parameters); final CharSequence page;
if (httpPost)
final CharSequence page = httpClient.get(uri.toString(), httpPost ? parameters.substring(1) : null, Charsets.UTF_8); page = httpClient.get(uri.toString(), parameters.substring(1), "application/x-www-form-urlencoded", Charsets.UTF_8);
else
page = httpClient.get(uri.append(parameters).toString(), Charsets.UTF_8);
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT); final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT);
try try
@ -379,18 +379,18 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
protected SuggestLocationsResult xmlStopfinderRequest(final Location constraint) throws IOException protected SuggestLocationsResult xmlStopfinderRequest(final Location constraint) throws IOException
{ {
final StringBuilder parameters = stopfinderRequestParameters(constraint, "XML");
final StringBuilder uri = new StringBuilder(stopFinderEndpoint); final StringBuilder uri = new StringBuilder(stopFinderEndpoint);
if (!httpPost) final StringBuilder parameters = stopfinderRequestParameters(constraint, "XML");
uri.append(parameters);
InputStream is = null; InputStream is = null;
String firstChars = null; String firstChars = null;
try try
{ {
is = httpClient.getInputStream(uri.toString(), httpPost ? parameters.substring(1) : null, null, httpReferer, null); if (httpPost)
is = httpClient.getInputStream(uri.toString(), parameters.substring(1), "application/x-www-form-urlencoded", null, httpReferer);
else
is = httpClient.getInputStream(uri.append(parameters).toString(), null, httpReferer);
firstChars = HttpClient.peekFirstChars(is); firstChars = HttpClient.peekFirstChars(is);
final XmlPullParser pp = parserFactory.newPullParser(); final XmlPullParser pp = parserFactory.newPullParser();
@ -426,18 +426,18 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
protected SuggestLocationsResult mobileStopfinderRequest(final Location constraint) throws IOException protected SuggestLocationsResult mobileStopfinderRequest(final Location constraint) throws IOException
{ {
final StringBuilder parameters = stopfinderRequestParameters(constraint, "XML");
final StringBuilder uri = new StringBuilder(stopFinderEndpoint); final StringBuilder uri = new StringBuilder(stopFinderEndpoint);
if (!httpPost) final StringBuilder parameters = stopfinderRequestParameters(constraint, "XML");
uri.append(parameters);
InputStream is = null; InputStream is = null;
String firstChars = null; String firstChars = null;
try try
{ {
is = httpClient.getInputStream(uri.toString(), httpPost ? parameters.substring(1) : null, null, httpReferer, null); if (httpPost)
is = httpClient.getInputStream(uri.toString(), parameters.substring(1), "application/x-www-form-urlencoded", null, httpReferer);
else
is = httpClient.getInputStream(uri.append(parameters).toString(), null, httpReferer);
firstChars = HttpClient.peekFirstChars(is); firstChars = HttpClient.peekFirstChars(is);
final XmlPullParser pp = parserFactory.newPullParser(); final XmlPullParser pp = parserFactory.newPullParser();
@ -545,18 +545,18 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
protected NearbyLocationsResult xmlCoordRequest(final EnumSet<LocationType> types, final int lat, final int lon, final int maxDistance, protected NearbyLocationsResult xmlCoordRequest(final EnumSet<LocationType> types, final int lat, final int lon, final int maxDistance,
final int maxStations) throws IOException final int maxStations) throws IOException
{ {
final StringBuilder parameters = xmlCoordRequestParameters(types, lat, lon, maxDistance, maxStations);
final StringBuilder uri = new StringBuilder(coordEndpoint); final StringBuilder uri = new StringBuilder(coordEndpoint);
if (!httpPost) final StringBuilder parameters = xmlCoordRequestParameters(types, lat, lon, maxDistance, maxStations);
uri.append(parameters);
InputStream is = null; InputStream is = null;
String firstChars = null; String firstChars = null;
try try
{ {
is = httpClient.getInputStream(uri.toString(), httpPost ? parameters.substring(1) : null, null, httpReferer, null); if (httpPost)
is = httpClient.getInputStream(uri.toString(), parameters.substring(1), "application/x-www-form-urlencoded", null, httpReferer);
else
is = httpClient.getInputStream(uri.append(parameters).toString(), null, httpReferer);
firstChars = HttpClient.peekFirstChars(is); firstChars = HttpClient.peekFirstChars(is);
final XmlPullParser pp = parserFactory.newPullParser(); final XmlPullParser pp = parserFactory.newPullParser();
@ -624,18 +624,18 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
protected NearbyLocationsResult mobileCoordRequest(final EnumSet<LocationType> types, final int lat, final int lon, final int maxDistance, protected NearbyLocationsResult mobileCoordRequest(final EnumSet<LocationType> types, final int lat, final int lon, final int maxDistance,
final int maxStations) throws IOException final int maxStations) throws IOException
{ {
final StringBuilder parameters = xmlCoordRequestParameters(types, lat, lon, maxDistance, maxStations);
final StringBuilder uri = new StringBuilder(coordEndpoint); final StringBuilder uri = new StringBuilder(coordEndpoint);
if (!httpPost) final StringBuilder parameters = xmlCoordRequestParameters(types, lat, lon, maxDistance, maxStations);
uri.append(parameters);
InputStream is = null; InputStream is = null;
String firstChars = null; String firstChars = null;
try try
{ {
is = httpClient.getInputStream(uri.toString(), httpPost ? parameters.substring(1) : null, null, httpReferer, null); if (httpPost)
is = httpClient.getInputStream(uri.toString(), parameters.substring(1), "application/x-www-form-urlencoded", null, httpReferer);
else
is = httpClient.getInputStream(uri.append(parameters).toString(), null, httpReferer);
firstChars = HttpClient.peekFirstChars(is); firstChars = HttpClient.peekFirstChars(is);
final XmlPullParser pp = parserFactory.newPullParser(); final XmlPullParser pp = parserFactory.newPullParser();
@ -927,6 +927,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
private NearbyLocationsResult nearbyStationsRequest(final String stationId, final int maxLocations) throws IOException private NearbyLocationsResult nearbyStationsRequest(final String stationId, final int maxLocations) throws IOException
{ {
final StringBuilder uri = new StringBuilder(departureMonitorEndpoint);
final StringBuilder parameters = new StringBuilder(); final StringBuilder parameters = new StringBuilder();
appendCommonRequestParams(parameters, "XML"); appendCommonRequestParams(parameters, "XML");
parameters.append("&type_dm=stop&name_dm=").append(normalizeStationId(stationId)); parameters.append("&type_dm=stop&name_dm=").append(normalizeStationId(stationId));
@ -938,16 +939,15 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
parameters.append("&useAllStops=1"); parameters.append("&useAllStops=1");
parameters.append("&mode=direct"); parameters.append("&mode=direct");
final StringBuilder uri = new StringBuilder(departureMonitorEndpoint);
if (!httpPost)
uri.append(parameters);
InputStream is = null; InputStream is = null;
String firstChars = null; String firstChars = null;
try try
{ {
is = httpClient.getInputStream(uri.toString(), httpPost ? parameters.substring(1) : null, null, httpReferer, null); if (httpPost)
is = httpClient.getInputStream(uri.toString(), parameters.substring(1), "application/x-www-form-urlencoded", null, httpReferer);
else
is = httpClient.getInputStream(uri.append(parameters).toString(), null, httpReferer);
firstChars = HttpClient.peekFirstChars(is); firstChars = HttpClient.peekFirstChars(is);
final XmlPullParser pp = parserFactory.newPullParser(); final XmlPullParser pp = parserFactory.newPullParser();
@ -1501,18 +1501,18 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
private QueryDeparturesResult xsltDepartureMonitorRequest(final String stationId, final @Nullable Date time, final int maxDepartures, private QueryDeparturesResult xsltDepartureMonitorRequest(final String stationId, final @Nullable Date time, final int maxDepartures,
final boolean equivs) throws IOException final boolean equivs) throws IOException
{ {
final StringBuilder parameters = xsltDepartureMonitorRequestParameters(stationId, time, maxDepartures, equivs);
final StringBuilder uri = new StringBuilder(departureMonitorEndpoint); final StringBuilder uri = new StringBuilder(departureMonitorEndpoint);
if (!httpPost) final StringBuilder parameters = xsltDepartureMonitorRequestParameters(stationId, time, maxDepartures, equivs);
uri.append(parameters);
InputStream is = null; InputStream is = null;
String firstChars = null; String firstChars = null;
try try
{ {
is = httpClient.getInputStream(uri.toString(), httpPost ? parameters.substring(1) : null, null, httpReferer, null); if (httpPost)
is = httpClient.getInputStream(uri.toString(), parameters.substring(1), "application/x-www-form-urlencoded", null, httpReferer);
else
is = httpClient.getInputStream(uri.append(parameters).toString(), null, httpReferer);
firstChars = HttpClient.peekFirstChars(is); firstChars = HttpClient.peekFirstChars(is);
final XmlPullParser pp = parserFactory.newPullParser(); final XmlPullParser pp = parserFactory.newPullParser();
@ -1663,18 +1663,18 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
protected QueryDeparturesResult queryDeparturesMobile(final String stationId, final @Nullable Date time, final int maxDepartures, protected QueryDeparturesResult queryDeparturesMobile(final String stationId, final @Nullable Date time, final int maxDepartures,
final boolean equivs) throws IOException final boolean equivs) throws IOException
{ {
final StringBuilder parameters = xsltDepartureMonitorRequestParameters(stationId, time, maxDepartures, equivs);
final StringBuilder uri = new StringBuilder(departureMonitorEndpoint); final StringBuilder uri = new StringBuilder(departureMonitorEndpoint);
if (!httpPost) final StringBuilder parameters = xsltDepartureMonitorRequestParameters(stationId, time, maxDepartures, equivs);
uri.append(parameters);
InputStream is = null; InputStream is = null;
String firstChars = null; String firstChars = null;
try try
{ {
is = httpClient.getInputStream(uri.toString(), httpPost ? parameters.substring(1) : null, null, httpReferer, null); if (httpPost)
is = httpClient.getInputStream(uri.toString(), parameters.substring(1), "application/x-www-form-urlencoded", null, httpReferer);
else
is = httpClient.getInputStream(uri.append(parameters).toString(), null, httpReferer);
firstChars = HttpClient.peekFirstChars(is); firstChars = HttpClient.peekFirstChars(is);
final XmlPullParser pp = parserFactory.newPullParser(); final XmlPullParser pp = parserFactory.newPullParser();
@ -2125,19 +2125,18 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
final @Nullable Set<Product> products, final @Nullable Optimize optimize, final @Nullable WalkSpeed walkSpeed, final @Nullable Set<Product> products, final @Nullable Optimize optimize, final @Nullable WalkSpeed walkSpeed,
final @Nullable Accessibility accessibility, final @Nullable Set<Option> options) throws IOException final @Nullable Accessibility accessibility, final @Nullable Set<Option> options) throws IOException
{ {
final String parameters = xsltTripRequestParameters(from, via, to, date, dep, products, optimize, walkSpeed, accessibility, options);
final StringBuilder uri = new StringBuilder(tripEndpoint); final StringBuilder uri = new StringBuilder(tripEndpoint);
if (!httpPost) final String parameters = xsltTripRequestParameters(from, via, to, date, dep, products, optimize, walkSpeed, accessibility, options);
uri.append(parameters);
InputStream is = null; InputStream is = null;
String firstChars = null; String firstChars = null;
try try
{ {
is = httpClient.getInputStream(uri.toString(), httpPost ? parameters.substring(1) : null, null, httpRefererTrip); if (httpPost)
is = httpClient.getInputStream(uri.toString(), parameters.substring(1), "application/x-www-form-urlencoded", null, httpRefererTrip);
else
is = httpClient.getInputStream(uri.append(parameters).toString(), null, httpRefererTrip);
firstChars = HttpClient.peekFirstChars(is); firstChars = HttpClient.peekFirstChars(is);
return queryTrips(uri.toString(), is); return queryTrips(uri.toString(), is);
@ -2161,19 +2160,18 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
final boolean dep, final @Nullable Collection<Product> products, final @Nullable Optimize optimize, final @Nullable WalkSpeed walkSpeed, final boolean dep, final @Nullable Collection<Product> products, final @Nullable Optimize optimize, final @Nullable WalkSpeed walkSpeed,
final @Nullable Accessibility accessibility, final @Nullable Set<Option> options) throws IOException final @Nullable Accessibility accessibility, final @Nullable Set<Option> options) throws IOException
{ {
final String parameters = xsltTripRequestParameters(from, via, to, date, dep, products, optimize, walkSpeed, accessibility, options);
final StringBuilder uri = new StringBuilder(tripEndpoint); final StringBuilder uri = new StringBuilder(tripEndpoint);
if (!httpPost) final String parameters = xsltTripRequestParameters(from, via, to, date, dep, products, optimize, walkSpeed, accessibility, options);
uri.append(parameters);
InputStream is = null; InputStream is = null;
String firstChars = null; String firstChars = null;
try try
{ {
is = httpClient.getInputStream(uri.toString(), httpPost ? parameters.substring(1) : null, null, httpRefererTrip); if (httpPost)
is = httpClient.getInputStream(uri.toString(), parameters.substring(1), "application/x-www-form-urlencoded", null, httpRefererTrip);
else
is = httpClient.getInputStream(uri.append(parameters).toString(), null, httpRefererTrip);
firstChars = HttpClient.peekFirstChars(is); firstChars = HttpClient.peekFirstChars(is);
return queryTripsMobile(uri.toString(), from, via, to, is); return queryTripsMobile(uri.toString(), from, via, to, is);
@ -2205,7 +2203,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
try try
{ {
is = httpClient.getInputStream(uri.toString(), null, null, httpRefererTrip); is = httpClient.getInputStream(uri.toString(), null, httpRefererTrip);
firstChars = HttpClient.peekFirstChars(is); firstChars = HttpClient.peekFirstChars(is);
return queryTrips(uri.toString(), is); return queryTrips(uri.toString(), is);
@ -2237,7 +2235,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
try try
{ {
is = httpClient.getInputStream(uri.toString(), null, null, httpRefererTrip); is = httpClient.getInputStream(uri.toString(), null, httpRefererTrip);
firstChars = HttpClient.peekFirstChars(is); firstChars = HttpClient.peekFirstChars(is);
is.mark(512); is.mark(512);

View file

@ -426,7 +426,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
protected final SuggestLocationsResult jsonGetStops(final String uri) throws IOException protected final SuggestLocationsResult jsonGetStops(final String uri) throws IOException
{ {
final CharSequence page = httpClient.get(uri, null, jsonGetStopsEncoding); final CharSequence page = httpClient.get(uri, jsonGetStopsEncoding);
final Matcher mJson = P_AJAX_GET_STOPS_JSON.matcher(page); final Matcher mJson = P_AJAX_GET_STOPS_JSON.matcher(page);
if (mJson.matches()) if (mJson.matches())
@ -942,7 +942,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
try try
{ {
final String endpoint = extXmlEndpoint != null ? extXmlEndpoint : queryEndpoint; final String endpoint = extXmlEndpoint != null ? extXmlEndpoint : queryEndpoint;
final InputStream is = httpClient.getInputStream(endpoint, request, null, null); final InputStream is = httpClient.getInputStream(endpoint, request, "application/xml", null, null);
firstChars = HttpClient.peekFirstChars(is); firstChars = HttpClient.peekFirstChars(is);
reader = new InputStreamReader(is, Charsets.ISO_8859_1); reader = new InputStreamReader(is, Charsets.ISO_8859_1);
@ -2498,7 +2498,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
protected final NearbyLocationsResult jsonNearbyLocations(final String uri) throws IOException protected final NearbyLocationsResult jsonNearbyLocations(final String uri) throws IOException
{ {
final CharSequence page = httpClient.get(uri, null, jsonNearbyLocationsEncoding); final CharSequence page = httpClient.get(uri, jsonNearbyLocationsEncoding);
try try
{ {

View file

@ -208,7 +208,7 @@ public abstract class AbstractTsiProvider extends AbstractNetworkProvider
final StringBuilder uri = new StringBuilder(stopFinderEndpoint); final StringBuilder uri = new StringBuilder(stopFinderEndpoint);
uri.append(parameters); uri.append(parameters);
final CharSequence page = httpClient.get(uri.toString(), null, Charsets.UTF_8); final CharSequence page = httpClient.get(uri.toString(), Charsets.UTF_8);
try try
{ {
final List<SuggestedLocation> locations = new ArrayList<SuggestedLocation>(); final List<SuggestedLocation> locations = new ArrayList<SuggestedLocation>();
@ -299,7 +299,7 @@ public abstract class AbstractTsiProvider extends AbstractNetworkProvider
final StringBuilder uri = new StringBuilder(stopFinderEndpoint); final StringBuilder uri = new StringBuilder(stopFinderEndpoint);
uri.append(parameters); uri.append(parameters);
final CharSequence page = httpClient.get(uri.toString(), null, Charsets.UTF_8); final CharSequence page = httpClient.get(uri.toString(), Charsets.UTF_8);
try try
{ {
final List<Location> stations = new ArrayList<Location>(); final List<Location> stations = new ArrayList<Location>();
@ -344,7 +344,7 @@ public abstract class AbstractTsiProvider extends AbstractNetworkProvider
final StringBuilder uri = new StringBuilder(stopFinderEndpoint); final StringBuilder uri = new StringBuilder(stopFinderEndpoint);
uri.append(parameters); uri.append(parameters);
final CharSequence page = httpClient.get(uri.toString(), null, Charsets.UTF_8); final CharSequence page = httpClient.get(uri.toString(), Charsets.UTF_8);
try try
{ {
final JSONObject head = new JSONObject(page.toString()); final JSONObject head = new JSONObject(page.toString());
@ -761,7 +761,7 @@ public abstract class AbstractTsiProvider extends AbstractNetworkProvider
final StringBuilder uri = new StringBuilder(tripEndpoint); final StringBuilder uri = new StringBuilder(tripEndpoint);
uri.append(parameters); uri.append(parameters);
final CharSequence page = httpClient.get(uri.toString(), null, Charsets.UTF_8); final CharSequence page = httpClient.get(uri.toString(), Charsets.UTF_8);
try try
{ {
final JSONObject head = new JSONObject(page.toString()); final JSONObject head = new JSONObject(page.toString());

View file

@ -392,7 +392,7 @@ public class VrsProvider extends AbstractNetworkProvider
uri.append("&s=").append(Math.min(16, maxLocations)); // artificial server limit uri.append("&s=").append(Math.min(16, maxLocations)); // artificial server limit
} }
final CharSequence page = httpClient.get(uri.toString(), null, Charsets.UTF_8); final CharSequence page = httpClient.get(uri.toString(), Charsets.UTF_8);
try try
{ {
@ -456,7 +456,7 @@ public class VrsProvider extends AbstractNetworkProvider
uri.append("&t="); uri.append("&t=");
appendDate(uri, time); appendDate(uri, time);
} }
final CharSequence page = httpClient.get(uri.toString(), null, Charsets.UTF_8); final CharSequence page = httpClient.get(uri.toString(), Charsets.UTF_8);
try try
{ {
@ -554,7 +554,7 @@ public class VrsProvider extends AbstractNetworkProvider
final StringBuilder uri = new StringBuilder(API_BASE); final StringBuilder uri = new StringBuilder(API_BASE);
uri.append("?eID=tx_vrsinfo_his_info&i=").append(ParserUtils.urlEncode(stationId)); uri.append("?eID=tx_vrsinfo_his_info&i=").append(ParserUtils.urlEncode(stationId));
final CharSequence page = httpClient.get(uri.toString(), null, Charsets.UTF_8); final CharSequence page = httpClient.get(uri.toString(), Charsets.UTF_8);
try try
{ {
@ -623,7 +623,7 @@ public class VrsProvider extends AbstractNetworkProvider
final String uri = API_BASE + "?eID=tx_vrsinfo_ass2_objects&sc=" + sc + "&ac=" + ac + "&pc=" + ac + "&t=sap&q=" final String uri = API_BASE + "?eID=tx_vrsinfo_ass2_objects&sc=" + sc + "&ac=" + ac + "&pc=" + ac + "&t=sap&q="
+ ParserUtils.urlEncode(new Location(LocationType.ANY, null, null, constraint.toString()).name); + ParserUtils.urlEncode(new Location(LocationType.ANY, null, null, constraint.toString()).name);
final CharSequence page = httpClient.get(uri, null, Charsets.UTF_8); final CharSequence page = httpClient.get(uri, Charsets.UTF_8);
try try
{ {
@ -751,7 +751,7 @@ public class VrsProvider extends AbstractNetworkProvider
uri.append("p"); uri.append("p");
} }
final CharSequence page = httpClient.get(uri.toString(), null, Charsets.UTF_8); final CharSequence page = httpClient.get(uri.toString(), Charsets.UTF_8);
try try
{ {

View file

@ -87,26 +87,33 @@ public final class HttpClient
public CharSequence get(final String url) throws IOException public CharSequence get(final String url) throws IOException
{ {
return get(url, null); return get(url, (String) null);
} }
public CharSequence get(final String url, final String authorization) throws IOException public CharSequence get(final String url, final String authorization) throws IOException
{ {
return get(url, null, null, authorization); return get(url, null, null, null, authorization);
} }
public CharSequence get(final String urlStr, final String postRequest, final Charset requestEncoding) throws IOException public CharSequence get(final String urlStr, final Charset requestEncoding) throws IOException
{ {
return get(urlStr, postRequest, requestEncoding, null); return get(urlStr, null, null, requestEncoding);
} }
private CharSequence get(final String urlStr, final String postRequest, Charset requestEncoding, final String authorization) throws IOException public CharSequence get(final String urlStr, final String postRequest, final String requestContentType, final Charset requestEncoding)
throws IOException
{
return get(urlStr, postRequest, requestContentType, requestEncoding, null);
}
private CharSequence get(final String urlStr, final String postRequest, final String requestContentType, Charset requestEncoding,
final String authorization) throws IOException
{ {
if (requestEncoding == null) if (requestEncoding == null)
requestEncoding = Charsets.ISO_8859_1; requestEncoding = Charsets.ISO_8859_1;
final StringBuilder buffer = new StringBuilder(SCRAPE_INITIAL_CAPACITY); final StringBuilder buffer = new StringBuilder(SCRAPE_INITIAL_CAPACITY);
final InputStream is = getInputStream(urlStr, postRequest, requestEncoding, null, authorization); final InputStream is = getInputStream(urlStr, postRequest, requestContentType, requestEncoding, null, authorization);
final Reader pageReader = new InputStreamReader(is, requestEncoding); final Reader pageReader = new InputStreamReader(is, requestEncoding);
copy(pageReader, buffer); copy(pageReader, buffer);
pageReader.close(); pageReader.close();
@ -115,17 +122,22 @@ public final class HttpClient
public InputStream getInputStream(final String url) throws IOException public InputStream getInputStream(final String url) throws IOException
{ {
return getInputStream(url, null, null, null); return getInputStream(url, null, null);
} }
public InputStream getInputStream(final String urlStr, final String postRequest, final Charset requestEncoding, final String referer) public InputStream getInputStream(final String urlStr, final Charset requestEncoding, final String referer) throws IOException
throws IOException
{ {
return getInputStream(urlStr, postRequest, requestEncoding, referer, null); return getInputStream(urlStr, null, null, requestEncoding, referer);
} }
public InputStream getInputStream(final String urlStr, final String postRequest, Charset requestEncoding, final String referer, public InputStream getInputStream(final String urlStr, final String postRequest, final String requestContentType, final Charset requestEncoding,
final String authorization) throws IOException final String referer) throws IOException
{
return getInputStream(urlStr, postRequest, requestContentType, requestEncoding, referer, null);
}
public InputStream getInputStream(final String urlStr, final String postRequest, final String requestContentType, Charset requestEncoding,
final String referer, final String authorization) throws IOException
{ {
log.debug("{}: {}", postRequest != null ? "POST" : "GET", urlStr); log.debug("{}: {}", postRequest != null ? "POST" : "GET", urlStr);
@ -168,7 +180,7 @@ public final class HttpClient
final byte[] postRequestBytes = postRequest.getBytes(requestEncoding.name()); final byte[] postRequestBytes = postRequest.getBytes(requestEncoding.name());
connection.setRequestMethod("POST"); connection.setRequestMethod("POST");
connection.addRequestProperty("Content-Type", "application/x-www-form-urlencoded"); connection.addRequestProperty("Content-Type", requestContentType);
connection.addRequestProperty("Content-Length", Integer.toString(postRequestBytes.length)); connection.addRequestProperty("Content-Length", Integer.toString(postRequestBytes.length));
final OutputStream os = connection.getOutputStream(); final OutputStream os = connection.getOutputStream();