Отказ от ответственности: я понятия не имею, как работает Panda Video Converter, это всего лишь пример использования RequestBuilder
для отправки запросов GET и POST на сервер.
Шаги для достижения этой цели выглядят примерно так:
- Отправка сообщения POST на номер
hq.pandastream.com/videos.(yaml|xml)
с идентификатором вашей учетной записи в качестве параметра.
- Получите ответ, включая идентификатор нового видео, которое вы создали (заполнитель)
- Отображение формы для пользователя на основе идентификатора. Форма извлекается путем отправки GET на
upload.pandastream.com/videos/[id]/form
- При отправке этой формы загружается видео, информацию о котором можно получить, отправив GET на
GET hq.pandastream.com/videos/id.(yaml|xml)
Поскольку единственными элементами этого процесса являются запросы POST и GET, вы можете использовать RequestBuilder , чтобы сделать эти запросы для вас в GWT.
Мы пройдем шаг за шагом.
Отправка POST на hq.pandastream.com/videos.xml
с идентификатором вашей учетной записи в качестве параметра.
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, "http://hq.pandastream.com/videos.xml");
rb.sendRequest("account_key=foo", new RequestCallback() {
protected void onResponseReceived(Request request, Response, response) {
// parse XML to get "id" element
}
// onError() ...
});
Теперь, когда у вас есть идентификатор, вы можете сделать еще один запрос на получение формы загрузки HTML.
rb = new RequestBuilder(RequestBuilder.GET, "http://upload.pandastream.com/videos/" + id + "/form");
rb.sendRequest(null, new RequestCallback() {
protected void onResponseReceived(Request request, Response, response) {
// this may not work, and it may be a bad idea to inject third-party HTML
// straight into your page. You might also want to open a popup window
// instead of injecting the HTML directly.
someWidget.setHTML(response.getText());
}
// onError() ...
});
С помощью этой формы пользователь загружает видео и т. Д.
Теперь, чтобы получить информацию о видео, это - как вы уже догадались - еще один RequestBuilder
звонок.
rb = new RequestBuilder(RequestBuilder.GET, "http://hq.pandastream.com/videos/" + id + ".xml");
rb.sendRequest(null, new RequestCallback() {
protected void onResponseReceived(Request request, Response, response) {
// parse response XML to get info you want
}
// onError() ...
});
Еще один отказ от ответственности: это очень грубый набросок того, что выглядит как процессом загрузки видео на основе связанных с вами документов. Это просто базовый пример использования RequestBuilder
для выполнения вызовов GET / POST.