int SP_HiveDBProtocol :: clientCall( SP_NKSocket * socket, const char * uri, int isKeepAlive, const char * reqBuff, int reqLen, SP_NKHttpResponse * httpResp ) { SP_NKHttpRequest httpReq; { httpReq.setMethod( "POST" ); httpReq.setURI( uri ); httpReq.setVersion( "HTTP/1.1" ); if( isKeepAlive ) httpReq.addHeader( "Connection", "Keep-Alive" ); httpReq.addHeader( "Host", "127.0.0.1" ); httpReq.appendContent( reqBuff, reqLen ); } return SP_NKHttpProtocol::post( socket, &httpReq, httpResp ); }
int main(int argc, char *argv[]) { spnk_initsock();//初始化spnetkit库 SP_NKHttpRequest request; request.setURI("/html/index.html"); request.setMethod("GET"); request.setVersion("Http/1.1"); request.addHeader("Connection", "keep-Alive"); request.addHeader("Host", "127.0.0.1"); SP_NKTcpSocket sp_socket("192.168.40.156", 80); SP_NKHttpResponse response; int ret = SP_NKHttpProtocol::get(&sp_socket, &request, &response); if(ret == 0){ cout << "response:" << endl; cout << response.getVersion() <<"\n"<< response.getStatusCode()<<"\n" << response.getReasonPhrase() <<endl; cout << response.getHeaderCount() << endl; for(int i = 0; i < response.getHeaderCount(); i++){ const char *name = response.getHeaderName(i); const char *val = response.getHeaderValue(i); cout << name << ": " << val << endl; } cout << response.getContentLength() << endl; if(NULL != response.getContent() && response.getContentLength() > 0 ){ cout << (char *)response.getContent() << endl; } }else{ cout << "Http request failed!\n"; } return 0; }