Как использовать HTTP GET, чтобы получить изображение из Google Chart API и сохранить на сервере? - PullRequest
0 голосов
/ 30 июня 2010

Может кто-нибудь сказать мне, если они знают, как использовать API Google Chart для хранения изображения, возвращенного в файловой системе, а не для включения в веб-страницу?

Моя ситуация такова, что я хотел бы, чтобы сервлет Java или прослушиватель регулярно запускались на сервере Apache Tomcat для отправки HTTP-запросов GET / POST в API Google Chart и сохранения полученных изображений в файловой системе или приложении. база данных. Позже изображения будут размещены на страницах HTML.

Предположительно я смотрю на что-то вроде этого:

String result = null;
URL url = new URL(urlStr);
URLConnection conn = url.openConnection ();

BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuffer sb = new StringBuffer();
String line;
while ((line = rd.readLine()) != null)
{
    sb.append(line);
}
rd.close();
result = sb.toString();

Где результат - изображение, которое можно записать в файл или базу данных? Но там, где, возможно, придется убрать какой-то результат.

Любой совет приветствуется.

Мистер Морган.

Ответы [ 2 ]

0 голосов
/ 30 июня 2010

Запрос изображения непосредственно с сервера (например, с использованием cURL или аналогичного) вместо вставки <img src...>. Когда вы получите изображение, сохраните его на своем сервере и свяжитесь с этой локальной версией.

Проверьте условия лицензии Chart API, чтобы узнать, разрешено ли вам это делать.

0 голосов
/ 30 июня 2010

Напишите программу, которая открывает HTTP-соединение с URL-адресом API Google Chart, например http://chart.apis.google.com/chart?cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World

Считать поток ответов и записать его в FileOutputStream

Если вам нужна более конкретная помощь, чем эта, пожалуйста, напишите комментарий или обновите вопрос более конкретными вопросами: -)

EDIT:

Поскольку это двоичные данные, а не текстовые данные, не используйте Readers - вместо этого работайте напрямую с InputStream. Считайте байты во временный буфер и запишите их в FileOutputStream.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...