После примера приложения Java ваш код должен быть помещен в TaskServlet.java
.
Отправляемая вами полезная нагрузка будет приниматься обработчиком, где будет фрагмент кода, который вы хотите выполнить.Вы можете использовать эту полезную нагрузку для выполнения вашего кода.
Вот как выглядит мой код:
@WebServlet(
name = "Tasks",
description = "Create Cloud Task",
urlPatterns = "/tasks/create" //Relative path to this handler
)
public class TaskServlet extends HttpServlet {
private static Logger log = Logger.getLogger(TaskServlet.class.getName());
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws
IOException {
log.info("Received task request: " + req.getServletPath());
String body = req.getReader()
.lines()
.reduce("", (accumulator, actual) -> accumulator + actual);
if (!body.isEmpty()) {
log.info("Request payload: " + body);
String output = String.format("Received task with payload %s", body);
resp.getOutputStream().write(output.getBytes());
log.info("Sending response: " + output);
//For instance, something like...
myFunction(body); //body being the payload
resp.setStatus(HttpServletResponse.SC_OK);
} else {
log.warning("Null payload received in request to " + req.getServletPath());
}
}
private void myFunction(String str){
//Your code here
}
}
В пределах CreateTask.java
посмотрите, как задан относительный путь к обработчику:
// Construct the task body.
Task.Builder taskBuilder = Task
.newBuilder()
.setAppEngineHttpRequest(AppEngineHttpRequest.newBuilder()
.setBody(ByteString.copyFrom(payload, Charset.defaultCharset()))
.setRelativeUri("/tasks/create") //This will look for a handler with this relative path
.setHttpMethod(HttpMethod.POST)
.build());
Вы также можете создавать разные обработчики, задавая им разные относительные URI.