in tensorflow_serving/util/net_http/server/internal/evhttp_request.cc [57:119]
bool ParsedEvRequest::decode() {
switch (evhttp_request_get_command(request)) {
case EVHTTP_REQ_GET:
method = "GET";
break;
case EVHTTP_REQ_POST:
method = "POST";
break;
case EVHTTP_REQ_HEAD:
method = "HEAD";
break;
case EVHTTP_REQ_PUT:
method = "PUT";
break;
case EVHTTP_REQ_DELETE:
method = "DELETE";
break;
case EVHTTP_REQ_OPTIONS:
method = "OPTIONS";
break;
case EVHTTP_REQ_TRACE:
method = "TRACE";
break;
case EVHTTP_REQ_CONNECT:
method = "CONNECT";
break;
case EVHTTP_REQ_PATCH:
method = "PATCH";
break;
default:
return false;
}
uri = evhttp_request_get_uri(request);
decoded_uri = evhttp_uri_parse(uri);
if (decoded_uri == nullptr) {
return false;
}
// NB: need double-check "/" is OK
path = evhttp_uri_get_path(decoded_uri);
if (path == nullptr) {
path = "/";
}
path_and_query = path;
const char* query = evhttp_uri_get_query(decoded_uri);
if (query != nullptr) {
path_and_query.push_back('?');
path_and_query.append(query);
}
const char* fragment = evhttp_uri_get_fragment(decoded_uri);
if (fragment != nullptr) {
path_and_query.push_back('#');
path_and_query.append(fragment);
}
headers = evhttp_request_get_input_headers(request);
return true;
}