HTTP Client Request Object Setup

Request's Parameters

µC/HTTP-client provides the function HTTPc_ReqSetParam to configure parameters related to the HTTP Request. The function takes as argument the type of parameter and the pointer to the parameter. The below parameter's types are available :

HTTPc Request's Parameters
Parameter TypeDescription
HTTPc_PARAM_TYPE_REQ_QUERY_STR_TBLSets the Request's Query String Table.
HTTPc_PARAM_TYPE_REQ_QUERY_STR_HOOKSets the Request's Query String Hook Function.
HTTPc_PARAM_TYPE_REQ_HDR_TBLSets the Request's Header Table.
HTTPc_PARAM_TYPE_REQ_HDR_HOOKSets the Request's Header Hook Function.
HTTPc_PARAM_TYPE_REQ_FORM_TBLSets the Request's Form Table.
HTTPc_PARAM_TYPE_REQ_BODY_CONTENT_TYPESets the Request's Body Content Type.
HTTPc_PARAM_TYPE_REQ_BODY_CONTENT_LENSets the Request's Body Content Length.
HTTPc_PARAM_TYPE_REQ_BODY_HOOKSets the Request's Hook Function for retrieving the data body.
HTTPc_PARAM_TYPE_RESP_HDR_HOOKSets the Response's Header Hook Function.
HTTPc_PARAM_TYPE_RESP_BODY_HOOKSets the Response's Hook Function for the Body received.
HTTPc_PARAM_TYPE_TRANS_COMPLETE_CALLBACK

Sets the HTTP Transaction Complete Callback to notify the application that the Transaction is completed.

This parameter is mandatory when the HTTPc_CFG_MODE_ASYNC_TASK_EN configuration is enabled.

HTTPc_PARAM_TYPE_TRANS_ERR_CALLBACK

Sets the HTTP Transaction Error Callback to notify the application when an unexpected error occurred with an HTTP Transaction.

This parameter is mandatory when the HTTPc_CFG_MODE_ASYNC_TASK_EN configuration is enabled.

Example

Request setup example code
CPU_BOOLEAN  HTTPcApp_ReqPrepare (HTTPc_CONN_OBJ  *p_req) 
{
	HTTPc_ERR       err;   
 
														         /* ----------------- INIT NEW REQUEST ----------------- */
    HTTPc_ReqClr(p_req, &err);
    if (err != HTTPc_ERR_NONE) {
        return (DEF_FAIL);
    }       

                                                                 /* ------------ SET STRING QUERY PARAMETERS ----------- */
    HTTPc_ReqSetParam(p_req,
                      HTTPc_PARAM_TYPE_REQ_QUERY_STR_HOOK,
                     &HTTPcApp_ReqQueryStrHook,
                     &err);
    if (err != HTTPc_ERR_NONE) {
        return (DEF_FAIL);
    }
                                                                /* ---------- SET REQUEST ADDITIONAL HEADERS ---------- */
    HTTPc_ReqSetParam(p_req,
                      HTTPc_PARAM_TYPE_REQ_HDR_HOOK,
                     &HTTPcApp_ReqHdrHook,
                     &err);
    if (err != HTTPc_ERR_NONE) {
        return (DEF_FAIL);
    }     
         
                                                                /* ------------ SET REQ/RESP HOOK FUNCTIONS ----------- */
    HTTPc_ReqSetParam(p_req,
                      HTTPc_PARAM_TYPE_RESP_HDR_HOOK,
                     &HTTPcApp_RespHdrHook,
                     &err);
    if (err != HTTPc_ERR_NONE) {
        return (DEF_FAIL);
    }

    HTTPc_ReqSetParam(p_req,
                      HTTPc_PARAM_TYPE_RESP_BODY_HOOK,
                     &HTTPcApp_RespBodyHook,
                     &err);
    if (err != HTTPc_ERR_NONE) {
        return (DEF_FAIL);
    }
                                                                /* --------- SET REQ/RESP CALLBACK FUNCTIONS ---------- */
#if (HTTPc_CFG_MODE_ASYNC_TASK_EN == DEF_ENABLED)
    HTTPc_ReqSetParam(p_req,
                      HTTPc_PARAM_TYPE_TRANS_COMPLETE_CALLBACK,
                     &HTTPcApp_TransDoneCallback,
                     &err);
    if (err != HTTPc_ERR_NONE) {
        return (DEF_FAIL);
    }

    HTTPc_ReqSetParam(p_req,
                      HTTPc_PARAM_TYPE_TRANS_ERR_CALLBACK,
                     &HTTPcApp_TransErrCallback,
                     &err);
    if (err != HTTPc_ERR_NONE) {
        return (DEF_FAIL);
    }
#endif                                       	

	return (DEF_OK);
}