我们正在构建从网站和移动应用程序收集事件的分析工具。我们要处理的请求与任务队列在谷歌应用程序引擎。当我参考文档在谷歌开发人员网站
Queue queue = QueueFactory.getDefaultQueue();
queue.add(withUrl("/analytics").param("id", String.valueOf(id)));
可以选择只给出参数。但是我如何将整个HTTP请求传递给任务队列并处理它们?
我认为这里的主要问题是如何将所有请求参数和请求体传递给任务。
不幸的是,没有简单的"中继"或"重定向"方法来移动您的请求到任务队列(但它会很好)。您必须使用Queue.add(TaskOptions taskOptions)
方法来添加您的任务。
建议实例化TaskOptions对象的方法是静态导入TaskOptions.Builder.*
并调用静态创建方法,然后调用实例mutator(如果需要)。
并使用以下方法之一(或任何其他payload()
方法):
TaskOptions.payload(byte[] payload);
TaskOptions.payload(byte[] payload, String contentType);
TaskOptions.payload(String payload);
设置请求的内容。您可以通过从request.getInputStream()
读取有效负载来获得它。
请求参数(如果它们是URL的一部分,而不是表单POST的结果),您必须手动复制每个,例如TaskOptions.param(String name, String value)
.