merge from bravo, parse the http reponse in json of bravo system.
正在显示
2 个修改的文件
包含
32 行增加
和
2 行删除
@@ -433,11 +433,37 @@ int SrsHttpHooks::do_post(std::string url, std::string req, int& code, string& r | @@ -433,11 +433,37 @@ int SrsHttpHooks::do_post(std::string url, std::string req, int& code, string& r | ||
433 | return ERROR_HTTP_STATUS_INVLIAD; | 433 | return ERROR_HTTP_STATUS_INVLIAD; |
434 | } | 434 | } |
435 | 435 | ||
436 | - // TODO: FIXME: parse json. | ||
437 | - if (res.empty() || res != SRS_HTTP_RESPONSE_OK) { | 436 | + if (res.empty()) { |
438 | return ERROR_HTTP_DATA_INVLIAD; | 437 | return ERROR_HTTP_DATA_INVLIAD; |
439 | } | 438 | } |
440 | 439 | ||
440 | + // parse string res to json. | ||
441 | + SrsJsonAny* info = SrsJsonAny::loads((char*)res.c_str()); | ||
442 | + SrsAutoFree(SrsJsonAny, info); | ||
443 | + | ||
444 | + // if res is number of error code | ||
445 | + if (!info->is_object()) { | ||
446 | + if (res != SRS_HTTP_RESPONSE_OK) { | ||
447 | + return ERROR_HTTP_DATA_INVLIAD; | ||
448 | + } | ||
449 | + return ret; | ||
450 | + } | ||
451 | + | ||
452 | + // if res is json obj, like: {"code": 0, "data": ""} | ||
453 | + SrsJsonObject* res_info = info->to_object(); | ||
454 | + SrsJsonAny* res_code = NULL; | ||
455 | + if ((res_code = res_info->ensure_property_integer("code")) == NULL) { | ||
456 | + ret = ERROR_RESPONSE_CODE; | ||
457 | + srs_error("res code error, ret=%d", ret); | ||
458 | + return ret; | ||
459 | + } | ||
460 | + | ||
461 | + if ((res_code->to_integer()) != ERROR_SUCCESS) { | ||
462 | + ret = ERROR_RESPONSE_CODE; | ||
463 | + srs_error("res code error, ret=%d, code=%d", ret, code); | ||
464 | + return ret; | ||
465 | + } | ||
466 | + | ||
441 | return ret; | 467 | return ret; |
442 | } | 468 | } |
443 | 469 |
@@ -223,6 +223,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -223,6 +223,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
223 | #define ERROR_HDS_OPEN_FRAGMENT_FAILED 3060 | 223 | #define ERROR_HDS_OPEN_FRAGMENT_FAILED 3060 |
224 | #define ERROR_HDS_WRITE_FRAGMENT_FAILED 3061 | 224 | #define ERROR_HDS_WRITE_FRAGMENT_FAILED 3061 |
225 | #define ERROR_HLS_NO_STREAM 3062 | 225 | #define ERROR_HLS_NO_STREAM 3062 |
226 | +#define ERROR_JSON_LOADS 3063 | ||
227 | +#define ERROR_RESPONSE_CODE 3064 | ||
226 | 228 | ||
227 | /////////////////////////////////////////////////////// | 229 | /////////////////////////////////////////////////////// |
228 | // HTTP/StreamCaster protocol error. | 230 | // HTTP/StreamCaster protocol error. |
@@ -262,6 +264,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -262,6 +264,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
262 | // user-define error. | 264 | // user-define error. |
263 | /////////////////////////////////////////////////////// | 265 | /////////////////////////////////////////////////////// |
264 | #define ERROR_USER_START 9000 | 266 | #define ERROR_USER_START 9000 |
267 | +#define ERROR_USER_DISCONNECT 9001 | ||
268 | +#define ERROR_SOURCE_NOT_FOUND 9002 | ||
265 | #define ERROR_USER_END 9999 | 269 | #define ERROR_USER_END 9999 |
266 | 270 | ||
267 | /** | 271 | /** |
-
请 注册 或 登录 后发表评论