2010-10-26 113 views
3

我需要多次交易。但是巴達讓我只做一次交易。如何增加交易數量?我正在使用的代碼是交易次數

result HttpClient::TestHttpGet(Osp::Base::String link1) 

{ 
int r1; 
result r = E_SUCCESS; 
HttpTransaction* pTransaction = null; 
HttpRequest* pRequest = null; 
String hostAddr(link1); 

if(__pSession == null) 
{ 
__pSession = new HttpSession(); 

r = __pSession->Construct(NET_HTTP_SESSION_MODE_NORMAL, null, hostAddr, null); 

if (IsFailed(r)) 

goto CATCH; 

} 


pTransaction = __pSession->OpenTransactionN(); 
r1=__pSession->GetActiveTransactionCount(); 
AppLog("Total no of transaction:%d",r); 
if (null == pTransaction) 
{ 
r = GetLastResult(); 
goto CATCH; 
} 

r = pTransaction->AddHttpTransactionListener(*this); 

if (IsFailed(r)) 

goto CATCH; 


pRequest = const_cast<HttpRequest*>(pTransaction->GetRequest()); 

if(pRequest == null) 
{ 
r = GetLastResult(); 

goto CATCH; 

} 

r = pRequest->SetUri(link1); 

if(IsFailed(r)) 

goto CATCH; 

r = pRequest->SetMethod(NET_HTTP_METHOD_GET); 

if(IsFailed(r)) 

goto CATCH; 

r = pTransaction->Submit(); 

if(IsFailed(r)) 

goto CATCH; 

return r; 

CATCH: 

return r; 
} 

回答

3

最多可以有六個同時會話(HttpSession)。每個會話都可以啓動多個事務(HttpTransaction),但只能按順序。

我的建議:如果您需要連接到不同的主機,請使用多個會話。但是對於每個主機,一次只能使用一個事務。如果您嘗試與同一臺主機建立多個連接(請記住您的網絡帶寬受限,並行連接必須共享)。

0

您還可以嘗試使用NET_HTTP_SESSION_MODE_PIPELINE來管道會話中的事務。