我可以使用org.apache.http.client.HttpClient在谷歌应用程序引擎?(C

2019-09-02 04:25发布

我somwhere阅读古尔只是只允许提取。 这是否意味着它不可能org.apache.http.client.HttpClient在谷歌APPE引擎集成?

如果没有,是否有使用的谷歌应用程序引擎使用org.apache.http.client.HttpClient现有librairies的方法吗?

Answer 1:

所以答案是不。 你需要使用谷歌抓取库。

从谷歌代码谷歌App Engine的wiki页面的存档通过Wayback机器 :

仅支持HTTP传输UrlFetchTransport基于网址提取的Java API在谷歌的App Engine SDK

不要试图ApacheHttpTransport ,因为它肯定会在谷歌应用程序引擎失败。



Answer 2:

更新2019

是的,你可以,确实如此。 我只是想,它的工作原理没有失败与Java 8环境。

脚步:

  1. 启用计费 ,否则native HttpURLConnection是不行的(这也是在Apache的HttpClient的基础上)。 如果没有结算,你只能使用旧的urlfetch从2016年以前的职位描述。

  2. 可选在Java中8的环境中,由于native是默认

appengine-web.xml

<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <url-stream-handler>native</url-stream-handler>
</appengine-web-app>
  1. 编写代码,如:
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);
}


文章来源: Can i use org.apache.http.client.HttpClient in google app engine?