Beispiel #1
0
int SP_HiveDBProtocol :: removeJson( int dbfile, const char * user,
		const char * dbname, int * result )
{
	SP_JsonArrayNode params;
	{
		SP_JsonObjectNode * args = new SP_JsonObjectNode();

		makeArgs( args, dbfile, user, dbname );

		params.addValue( args );
	}

	SP_JsonStringBuffer buffer;

	SP_JsonRpcUtils::toReqBuffer( "remove", user, &params, &buffer );

	SP_NKHttpResponse httpResp;

	int ret = clientCall( mSocket, "/sphivedb", mIsKeepAlive,
			buffer.getBuffer(), buffer.getSize(), &httpResp );

	if( 0 == ret ) {
		SP_JsonRpcRespObject respObj( (char*)httpResp.getContent(),
				httpResp.getContentLength() );

		SP_JsonHandle handle( respObj.getResult() );
		SP_JsonIntNode * resultNode = handle.toInt();

		*result = ( NULL != resultNode ) ? resultNode->getValue() : -1;
	}

	return ret;
}
Beispiel #2
0
int SP_HiveDBProtocol :: removeProtoBuf( int dbfile, const char * user,
		const char * dbname, int * result )
{
	SP_ProtoBufEncoder params;
	{
		makeArgs( &params, dbfile, user, dbname );
	}

	SP_ProtoBufEncoder reqEncoder;

	SP_ProtoBufRpcUtils::initReqEncoder( &reqEncoder, "remove", user );

	reqEncoder.addBinary( SP_ProtoBufRpcReqObject::eParams,
			params.getBuffer(), params.getSize() );

	SP_NKHttpResponse httpResp;

	int ret = clientCall( mSocket, "/sphivedb/protobuf", mIsKeepAlive,
			reqEncoder.getBuffer(), reqEncoder.getSize(), &httpResp );

	if( 0 == ret ) {
		SP_ProtoBufDecoder decoder;
		decoder.copyFrom( (char*)httpResp.getContent(), httpResp.getContentLength() );

		SP_ProtoBufDecoder::KeyValPair_t pair;
		if( decoder.find( SP_ProtoBufRpcRespObject::eResult, &pair ) ) {
			*result = pair.m32Bit.s;
		}
	} else {
		SP_NKLog::log( LOG_WARNING, "clientCall %d", ret );
	}

	return ret;
}
Beispiel #3
0
SP_HiveRespObject * SP_HiveDBProtocol :: executeJson( int dbfile, const char * user,
		const char * dbname, SP_NKStringList * sql )
{
	SP_JsonArrayNode params;
	{
		SP_JsonObjectNode * args = new SP_JsonObjectNode();

		makeArgs( args, dbfile, user, dbname );

		SP_JsonArrayNode * sqlNode = new SP_JsonArrayNode();

		for( int i = 0; i < sql->getCount(); i++ ) {
			sqlNode->addValue( new SP_JsonStringNode( sql->getItem( i ) ) );
		}

		SP_JsonPairNode * sqlPair = new SP_JsonPairNode();
		sqlPair->setName( "sql" );
		sqlPair->setValue( sqlNode );

		args->addValue( sqlPair );

		params.addValue( args );
	}

	SP_JsonStringBuffer buffer;

	SP_JsonRpcUtils::toReqBuffer( "execute", user, &params, &buffer );

	SP_HiveRespObject * resp = NULL;

	SP_NKHttpResponse httpResp;

	int ret = clientCall( mSocket, "/sphivedb", mIsKeepAlive,
			buffer.getBuffer(), buffer.getSize(), &httpResp );

	if( 0 == ret ) {
		SP_JsonRpcRespObject * inner = new SP_JsonRpcRespObject(
				(char*)httpResp.getContent(), httpResp.getContentLength() );
		resp = new SP_HiveRespObjectJson( inner, 1 );
	} else {
		SP_NKLog::log( LOG_WARNING, "clientCall %d", ret );
	}

	return resp;
}
Beispiel #4
0
SP_HiveRespObject * SP_HiveDBProtocol :: executeProtoBuf( int dbfile, const char * user,
		const char * dbname, SP_NKStringList * sql )
{
	SP_ProtoBufEncoder params;
	{
		makeArgs( &params, dbfile, user, dbname );

		for( int i = 0; i < sql->getCount(); i++ ) {
			params.addString( SP_HiveReqObjectProtoBuf::eSQL, sql->getItem(i) );
		}
	}

	SP_ProtoBufEncoder reqEncoder;

	SP_ProtoBufRpcUtils::initReqEncoder( &reqEncoder, "execute", user );

	reqEncoder.addBinary( SP_ProtoBufRpcReqObject::eParams,
			params.getBuffer(), params.getSize() );

	SP_HiveRespObjectProtoBuf * resp = NULL;

	SP_NKHttpResponse httpResp;

	int ret = clientCall( mSocket, "/sphivedb/protobuf", mIsKeepAlive,
			reqEncoder.getBuffer(), reqEncoder.getSize(), &httpResp );

	if( 0 == ret ) {
		SP_ProtoBufRpcRespObject * inner = new SP_ProtoBufRpcRespObject();
		inner->copyFrom( (char*)httpResp.getContent(), httpResp.getContentLength() );
		resp = new SP_HiveRespObjectProtoBuf( inner, 1 );
	} else {
		SP_NKLog::log( LOG_WARNING, "clientCall %d", ret );
	}

	return resp;
}
Beispiel #5
0
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;
}