String CHttpServer::directRequest( const String& method, const String& uri, const String& query, const HeaderList& headers ,const String& body ) { common::CMutexLock lock(m_mxSyncRequest); String ret; if ( m_pQueue != 0 ) { CDirectHttpRequestQueue::CDirectHttpRequest req; pthread_cond_t signal; pthread_cond_init(&signal,0); CMutex m; req.signal = &signal; req.mutex = m.getNativeMutex(); req.method = method; req.uri = uri; req.query = query; req.headers = headers; req.body = body; pthread_mutex_lock(m.getNativeMutex()); m_pQueue->doRequest( req ); pthread_cond_wait(&signal, m.getNativeMutex()); pthread_mutex_unlock(m.getNativeMutex()); ret = m_pQueue->getResponse(); } return ret; }