mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
support http api json, to PUT/POST. 0.9.105
This commit is contained in:
parent
3064e5ec61
commit
0186247fee
6 changed files with 187 additions and 8 deletions
|
@ -124,6 +124,7 @@ SrsApiV1::SrsApiV1()
|
|||
handlers.push_back(new SrsApiMemInfos());
|
||||
handlers.push_back(new SrsApiAuthors());
|
||||
handlers.push_back(new SrsApiConfigs());
|
||||
handlers.push_back(new SrsApiRequests());
|
||||
}
|
||||
|
||||
SrsApiV1::~SrsApiV1()
|
||||
|
@ -149,7 +150,72 @@ int SrsApiV1::do_process_request(SrsSocket* skt, SrsHttpMessage* req)
|
|||
<< JFIELD_STR("system_proc_stats", "the system process stats") << JFIELD_CONT
|
||||
<< JFIELD_STR("meminfos", "the meminfo of system") << JFIELD_CONT
|
||||
<< JFIELD_STR("configs", "to query or modify the config of srs") << JFIELD_CONT
|
||||
<< JFIELD_STR("authors", "the primary authors and contributors")
|
||||
<< JFIELD_STR("authors", "the primary authors and contributors") << JFIELD_CONT
|
||||
<< JFIELD_STR("requests", "the request itself, for http debug")
|
||||
<< JOBJECT_END
|
||||
<< JOBJECT_END;
|
||||
|
||||
return res_json(skt, req, ss.str());
|
||||
}
|
||||
|
||||
SrsApiRequests::SrsApiRequests()
|
||||
{
|
||||
}
|
||||
|
||||
SrsApiRequests::~SrsApiRequests()
|
||||
{
|
||||
}
|
||||
|
||||
bool SrsApiRequests::can_handle(const char* path, int length, const char** /*pchild*/)
|
||||
{
|
||||
return srs_path_equals("/requests", path, length);
|
||||
}
|
||||
|
||||
int SrsApiRequests::do_process_request(SrsSocket* skt, SrsHttpMessage* req)
|
||||
{
|
||||
std::stringstream ss;
|
||||
|
||||
ss << JOBJECT_START
|
||||
<< JFIELD_ERROR(ERROR_SUCCESS) << JFIELD_CONT
|
||||
<< JFIELD_ORG("data", JOBJECT_START)
|
||||
<< JFIELD_STR("uri", req->uri()) << JFIELD_CONT
|
||||
<< JFIELD_STR("path", req->path()) << JFIELD_CONT;
|
||||
|
||||
// method
|
||||
if (req->is_http_get()) {
|
||||
ss << JFIELD_STR("METHOD", "GET");
|
||||
} else if (req->is_http_post()) {
|
||||
ss << JFIELD_STR("METHOD", "POST");
|
||||
} else if (req->is_http_put()) {
|
||||
ss << JFIELD_STR("METHOD", "PUT");
|
||||
} else if (req->is_http_delete()) {
|
||||
ss << JFIELD_STR("METHOD", "DELETE");
|
||||
} else {
|
||||
ss << JFIELD_ORG("METHOD", req->method());
|
||||
}
|
||||
ss << JFIELD_CONT;
|
||||
|
||||
// request headers
|
||||
ss << JFIELD_NAME("headers") << JOBJECT_START;
|
||||
for (int i = 0; i < req->request_header_count(); i++) {
|
||||
std::string key = req->request_header_key_at(i);
|
||||
std::string value = req->request_header_value_at(i);
|
||||
if ( i < req->request_header_count() - 1) {
|
||||
ss << JFIELD_STR(key, value) << JFIELD_CONT;
|
||||
} else {
|
||||
ss << JFIELD_STR(key, value);
|
||||
}
|
||||
}
|
||||
ss << JOBJECT_END << JFIELD_CONT;
|
||||
|
||||
// server informations
|
||||
ss << JFIELD_NAME("server") << JOBJECT_START
|
||||
<< JFIELD_STR("sigature", RTMP_SIG_SRS_KEY) << JFIELD_CONT
|
||||
<< JFIELD_STR("name", RTMP_SIG_SRS_NAME) << JFIELD_CONT
|
||||
<< JFIELD_STR("version", RTMP_SIG_SRS_VERSION) << JFIELD_CONT
|
||||
<< JFIELD_STR("link", RTMP_SIG_SRS_URL) << JFIELD_CONT
|
||||
<< JFIELD_ORG("time", srs_get_system_time_ms())
|
||||
<< JOBJECT_END
|
||||
<< JOBJECT_END
|
||||
<< JOBJECT_END;
|
||||
|
||||
|
@ -177,7 +243,12 @@ int SrsApiConfigs::do_process_request(SrsSocket* skt, SrsHttpMessage* req)
|
|||
ss << JOBJECT_START
|
||||
<< JFIELD_ERROR(ERROR_SUCCESS) << JFIELD_CONT
|
||||
<< JFIELD_ORG("urls", JOBJECT_START)
|
||||
<< JFIELD_STR("logs", "the log level, tank and path")
|
||||
<< JFIELD_NAME("logs") << JOBJECT_START
|
||||
<< JFIELD_STR("uri", req->uri()+"/logs") << JFIELD_CONT
|
||||
<< JFIELD_STR("desc", "system log settings") << JFIELD_CONT
|
||||
<< JFIELD_STR("GET", "query logs tank/level/file") << JFIELD_CONT
|
||||
<< JFIELD_STR("PUT", "update logs tank/level/file")
|
||||
<< JOBJECT_END
|
||||
<< JOBJECT_END
|
||||
<< JOBJECT_END;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue