I read somwhere that goole just allowed only fetch. Does that mean it's impossible to integrate org.apache.http.client.HttpClient in google appe engine ?
If not, are there an alternative for using existing librairies using org.apache.http.client.HttpClient on google app engine ?
Yes, you can, indeed. I just tried, it works without fail with the Java 8 environment.
Steps:
Enable billing, otherwise the native
HttpURLConnection
won't work (which is also the basis of the Apache HttpClient). Without billing you can only use the legacy urlfetch
as described in previous post from 2016.
Optional in Java 8 environment, since native
is the default
appengine-web.xml
:
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<url-stream-handler>native</url-stream-handler>
</appengine-web-app>
try (CloseableHttpClient httpclient = HttpClients.createDefault()) {
HttpPost httpPost = new HttpPost("http://myservice.com");
httpPost.setEntity(new StringEntity(objectMapper.writeValueAsString(input), ContentType.APPLICATION_JSON));
CloseableHttpResponse response = httpclient.execute(httpPost);
return objectMapper.readValue(response.getEntity().getContent(), new TypeReference<MyReturnType>() { });
} catch (IOException e) {
throw new RuntimeException(e);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With