Response Header Buffer Callback

Asynchronous Functions - C

Called once before a sequence of pushed header buffers.

int <function name>(IN int aHttpStatusCode, IN const char * aAccumulatedHeadersStr, IN int aAccumulatedHeadersLen);

ArgumentDescription
aHttpStatusCodeThe HTTP return code.
aAccumulatedHeadersStrThe string of all accumulated response headers. A non-NULL pointer to a non-empty null-terminated string. The string does not contain any NULL characters (\0) except the terminator.
aAccumulatedHeadersLenThe length of the string pointed-to by aAccumulatedHeadersStr.

Return Values

Returns a value of Asynchronous function return values.

General Information

The response header buffer callback is a function created during recording and can be edited according to the needs of your application. It is invoked once for each response to an asynchronous request. Therefore, for each response, the headers are returned once before the body processing.

This callback is invoked while the response headers are being received. Since the response is arriving when this callback is invoked, you can implement the callback to change the asynchronous behavior for the current response.

The callback is not called at all if no response headers have been received. This includes the case of :

  • HTTP/0.9 — an all-body request with no headers

Example

The following example illustrates an asynchronous conversation.
/* Added by Async CodeGen.
ID = Push_0
ScanType = Recording

The following URLs are considered part of this conversation:
	http://push.myStream.com/myStream/STREAMING_IN_PROGRESS?LS_session=123456789ABCDE&LS_phase=2903&LS_domain=myStream.com&

TODO - The following callbacks have been added to AsyncCallbacks.c.
Add your code to the callback implementations as necessary.
	Push_0_RequestCB
	Push_0_ResponseBodyBufferCB
	Push_0_ResponseHeadersCB
	Push_0_ResponseCB
 */
	web_reg_async_attributes("ID=Push_0",
		"Pattern=Push",
		"URL=http://push.myStream.com/myStream/STREAMING_IN_PROGRESS?LS_session=123456789ABCDE&LS_phase=2903&LS_domain=myStream.com&",
		"RequestCB=Push_0_RequestCB",
		"ResponseHeadersCB=Push_0_ResponseHeadersCB",
		"ResponseBodyBufferCB=Push_0_ResponseBodyBufferCB",
		"ResponseCB=Push_0_ResponseCB",
		LAST);

/* Added by Async CodeGen.
ID = Push_0
 */
	web_stop_async("ID=Push_0",
		LAST);

//Automatically generated file for implementing async callback functions.
//You may modify the added callback implementations or add new ones.
//Async callback functions may be registered in web_reg_async_attributes steps.
int Push_0_RequestCB()
{
	//enter your implementation for RequestCB() here

	//call web_util_request_set_url() here to modify request url:
	web_util_set_request_url("<request url>");

	//call web_util_set_request_body() here to modify request body:
	web_util_set_request_body("<request body>");
	//call web_util_set_request_header() here to set request header:
	web_util_set_request_header("<header_name>", "<header_value>");

	return WEB_ASYNC_CB_RC_OK;
}

int Push_0_ResponseHeadersCB(
	int		aHttpStatusCode,
	const char *	aAccumulatedHeadersStr,
	int		aAccumulatedHeadersLen)
{
	//Enter your implementation for ResponseHeadersCB() here.

	return WEB_ASYNC_CB_RC_OK;
}

int Push_0_ResponseBodyBufferCB(
	const char *    aLastBufferStr,
	int             aLastBufferLen,
	const char *    aAccumulatedStr,
	int             aHttpStatusCode)
{
	//enter your implementation for ResponseBodyBufferCB() here

	return WEB_ASYNC_CB_RC_OK;
}

int Push_0_ResponseCB(
	const char *    aResponseHeadersStr,
	int             aResponseHeadersLen,
	const char *    aResponseBodyStr,
	int             aResponseBodyLen,
	int             aHttpStatusCode)
{
	//enter your implementation for ResponseCB() here

	return WEB_ASYNC_CB_RC_OK;
}