3

我需要多个交易。但 Bada 只允许我进行一项交易。如何增加交易数量?我正在使用的代码是

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;
 }
4

2 回答 2

3

您最多可以同时拥有六个会话 (HttpSession)。每个会话可以启动多个事务 (HttpTransaction),但只能按顺序启动。

我的建议:如果您需要连接到不同的主机,请使用多个会话。但是对于每个主机,一次只能使用一个事务。如果您尝试与同一主机建立多个连接,您将不会走得更快(请记住,您使用的手机网络带宽有限,必须在并行连接之间共享)。

于 2010-10-29T13:33:22.157 回答
0

您还可以尝试使用 NET_HTTP_SESSION_MODE_PIPELINE 在会话中传输事务。

于 2011-03-16T18:07:08.633 回答