I am wondering if it is possible to collect raw HTTP data in a Cloud Endpoint. I can\'t seem to find anything in Google\'s documentation, but App Engine\'s Twitter told me
The request is available in an Endpoints method as an injected type. An object of type HttpServletRequest
is invisibly injected into your Java method definition when you declare a parameter on the method that has that type, like this:
import javax.servlet.http.HttpServletRequest;
...
@ApiMethod
public MyMethod getRequest( HttpServletRequest req ) {
HttpServletRequest myRequest = req;
...
}
This is documented here:
https://cloud.google.com/endpoints/docs/frameworks/java/parameter-and-return-types#injected_types
Quoting from the above documentation:
Injected types
Injected types are those types that receive special treatment by Cloud Endpoints Frameworks. If such a type is used as a method parameter, it isn't made a part of the API. Instead, the parameter is filled in by Endpoints Frameworks.
The injected types are the following:
com.google.appengine.api.users.User
javax.servlet.http.HttpServletRequest
javax.servlet.ServletContext