POST-запрос TaskQueue с файлом или байтом [] в качестве параметра (Java) - PullRequest
3 голосов
/ 15 марта 2012

Можно ли вызвать очередь задач с параметром другого типа, чем String?Мой код в настоящее время выглядит следующим образом, но код в очереди никогда не достигается:

Ответы [ 4 ]

3 голосов
/ 18 марта 2012

Ответ Питера правильный, но, кроме того, вы не можете отправить запрос POST с определенной полезной нагрузкой и параметром.Попытка установить оба значения одновременно вызовет:

java.lang.IllegalArgumentException: 
    Message body and parameters may not both be present; 
    only one of these may be supplied

На основе вашего примера кода вы должны удалить .param( "xmlFile", xmlFile) из цепочки компоновщика вашей задачи TaskOption, если вы хотите отправить полезную нагрузку byte []на ваш запрос TaskQueue.

3 голосов
/ 15 марта 2012

Да, вы можете. Используйте TaskOptions.Builder.withPayload(byte[], String) или на существующем TaskOptions.payload(byte[], String).

0 голосов
/ 15 марта 2012

Посмотрите на вызов отложенной функции - намного больше гибкости полезной нагрузки.Помните, что прямой вызов TQ имеет ограничение в 10 КБ, которое вы можете быстро набрать, если ваша полезная нагрузка похожа на jpeg.http://code.google.com/appengine/articles/deferred.html

0 голосов
/ 15 марта 2012

Короткий ответ - нет, это HTTP, поэтому передаются только строки.Длинный ответ - да, вы можете сериализовать объект, а затем использовать ObjectInputStream, чтобы прочитать его и преобразовать обратно в объект, но вы должны сделать это вручную или использовать что-то вроде Jersey (jax-rs) или json reader для автоматической десериализацииобратно к объекту.

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