📄 testhttpmsg.cpp
字号:
/* * Copyright 2007 Stephen Liu * For license terms, see the file COPYING along with this library. */#include <stdio.h>#include <stdlib.h>#include <sys/stat.h>#include <string.h>#include "sphttpmsg.hpp"void printMessage( SP_HttpMessage * message ){ for( int i = 0; i < message->getHeaderCount(); i++ ) { printf( "%s: %s\n", message->getHeaderName( i ), message->getHeaderValue( i ) ); } printf( "\n" ); if( NULL != message->getContent() ) { printf( "%s", (char*)message->getContent() ); } printf( "\n" );}void printRequest( SP_HttpRequest * request ){ printf( "%s %s %s\n", request->getMethod(), request->getURI(), request->getVersion() ); for( int i = 0; i < request->getParamCount(); i++ ) { printf( "Param: %s=%s\n", request->getParamName(i), request->getParamValue(i) ); } printMessage( request );}void printResponse( SP_HttpResponse * response ){ printf( "%s %d %s\n", response->getVersion(), response->getStatusCode(), response->getReasonPhrase() ); printMessage( response );}int main( int argc, char * argv[] ){ char * filename = NULL; if( argc < 2 ) { printf( "Usage: %s <file>\n", argv[0] ); exit( -1 ); } else { filename = argv[1]; } FILE * fp = fopen ( filename, "r" ); if( NULL == fp ) { printf( "cannot not open %s\n", filename ); exit( -1 ); } struct stat aStat; char * source = NULL; stat( filename, &aStat ); source = ( char * ) malloc ( aStat.st_size + 1 ); fread ( source, aStat.st_size, sizeof ( char ), fp ); fclose ( fp ); source[ aStat.st_size ] = 0; SP_HttpMsgParser parser; //parser.setIgnoreContent( 1 ); int parsedLen = 0; for( int i = 0; i < (int)strlen( source ); i++ ) { parsedLen += parser.append( source + parsedLen, i - parsedLen + 1 ); //printf( "%d, %d\n", i, parsedLen ); } printf( "source length : %d, parsed length : %d\n", strlen( source ), parsedLen ); printf( "parse complete : %s\n", parser.isCompleted() ? "Yes" : "No" ); printf( "ignore content: %s\n", parser.isIgnoreContent() ? "Yes" : "No" ); puts( "\n" ); if( NULL != parser.getRequest() ) { printRequest( parser.getRequest() ); } if( NULL != parser.getResponse() ) { printResponse( parser.getResponse() ); } free( source ); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -