亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? exampleclientengine.cpp

?? 一個http客戶端連接的程序例子
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*
 * ============================================================================
 *  Name     : ExampleClientEngine.cpp
 *  Part of  : HTTP Example
 *  Created  : 11/14/2003 by Forum Nokia
 *  Implementation notes:
 *
 *     
 *  Version  : 1.0
 *  Copyright: Nokia Corporation
 * ============================================================================
 */

#include <avkon.hrh>
#include <aknnotewrappers.h>
#include <uri8.h>
#include <http.h>
#include <chttpformencoder.h>
#include <HttpStringConstants.h>
#include <http\RHTTPTransaction.h>
#include <http\RHTTPSession.h>
#include <http\RHTTPHeaders.h>
#include <ExampleClient.rsg>

#include "ExampleClient.pan"
#include "ExampleClient.hrh"
#include "ExampleClientEngine.h"

// Used user agent for requests
_LIT8(KUserAgent, "SimpleClient 1.0");

// This client accepts all content types.
// (change to e.g. "text/plain" for plain text only)
_LIT8(KAccept, "*/*");


// ----------------------------------------------------------------------------
// CClientEngine::NewL()
//
// Creates instance of CClientEngine.
// ----------------------------------------------------------------------------
CClientEngine* CClientEngine::NewL(MClientObserver& aObserver)
	{
    CClientEngine* self = CClientEngine::NewLC(aObserver);
    CleanupStack::Pop(self);
    return self;
	}


// ----------------------------------------------------------------------------
// CClientEngine::NewLC()
//
// Creates instance of CClientEngine.
// ----------------------------------------------------------------------------
CClientEngine* CClientEngine::NewLC(MClientObserver& aObserver)
	{
    CClientEngine* self = new (ELeave) CClientEngine(aObserver);
    CleanupStack::PushL(self);
    self->ConstructL();
    return self;
	}


// ----------------------------------------------------------------------------
// CClientEngine::CClientEngine()
//
// First phase constructor.
// ----------------------------------------------------------------------------
CClientEngine::CClientEngine(MClientObserver& aObserver)
:	iObserver(aObserver),
	iPostData(NULL),
	iRunning(EFalse)
	{
	}


// ----------------------------------------------------------------------------
// CClientEngine::~CClientEngine()
//
// Destructor.
// ----------------------------------------------------------------------------
CClientEngine::~CClientEngine()
	{
	iSession.Close();

	delete iPostData;
	iPostData = NULL;
	}


// ----------------------------------------------------------------------------
// CClientEngine::ConstructL()
//
// Second phase construction.
// ----------------------------------------------------------------------------
void CClientEngine::ConstructL()
	{
	// Open RHTTPSession with default protocol ("HTTP/TCP")
	TRAPD(err, iSession.OpenL());
	if(err != KErrNone) {
		// Most common error; no access point configured, and session creation
		// leaves with KErrNotFound.
		_LIT(KErrMsg,
			"Cannot create session. Is internet access point configured?");
		_LIT(KExitingApp, "Exiting app.");
		CEikonEnv::Static()->InfoWinL(KErrMsg, KExitingApp);
		User::Leave(err);
	}

	// Install this class as the callback for authentication requests. When 
	// page requires authentication the framework calls GetCredentialsL to get 
	// user name and password.
	InstallAuthenticationL(iSession);
	}


// ----------------------------------------------------------------------------
// CClientEngine::SetHeaderL()
//
// Used to set header value to HTTP request
// ----------------------------------------------------------------------------
void CClientEngine::SetHeaderL(RHTTPHeaders aHeaders, 
							 TInt aHdrField, 
							 const TDesC8& aHdrValue)
	{
	RStringF valStr = iSession.StringPool().OpenFStringL(aHdrValue);
	CleanupClosePushL(valStr);
	THTTPHdrVal val(valStr);
	aHeaders.SetFieldL(iSession.StringPool().StringF(aHdrField,
		RHTTPSession::GetTable()), val);
	CleanupStack::PopAndDestroy(); // valStr
	}


// ----------------------------------------------------------------------------
// CClientEngine::IssueHTTPGetL()
//
// Start a new HTTP GET transaction.
// ----------------------------------------------------------------------------
void CClientEngine::IssueHTTPGetL(const TDesC8& aUri)
	{
	// Parse string to URI (as defined in RFC2396)
	TUriParser8 uri;
	uri.Parse(aUri);

	// Get request method string for HTTP GET
	RStringF method = iSession.StringPool().StringF(HTTP::EGET,
		RHTTPSession::GetTable());

	// Open transaction with previous method and parsed uri. This class will
	// receive transaction events in MHFRunL and MHFRunError.
	iTransaction = iSession.OpenTransactionL(uri, *this, method);

	// Set headers for request; user agent and accepted content type
	RHTTPHeaders hdr = iTransaction.Request().GetHeaderCollection();
	SetHeaderL(hdr, HTTP::EUserAgent, KUserAgent);
	SetHeaderL(hdr, HTTP::EAccept, KAccept);

	// Submit the transaction. After this the framework will give transaction
	// events via MHFRunL and MHFRunError.
	iTransaction.SubmitL();

	iRunning = ETrue;
	_LIT(KConnecting,"Connecting...");
	iObserver.ClientEvent(KConnecting);
	}


// ----------------------------------------------------------------------------
// CClientEngine::IssueHTTPPostL()
//
// Start a new HTTP POST transaction.
// ----------------------------------------------------------------------------
void CClientEngine::IssueHTTPPostL(const TDesC8& aUri, 
								 const TDesC8& aContentType, 
								 const TDesC8& aBody) 
	{
	// Parse string to URI
	TUriParser8 uri; 
	uri.Parse(aUri);

	// Copy data to be posted into member variable; iPostData is used later in
	// methods inherited from MHTTPDataSupplier.
	delete iPostData;
	iPostData = aBody.AllocL();

	// Get request method string for HTTP POST
	RStringF method = iSession.StringPool().StringF(HTTP::EPOST,
		RHTTPSession::GetTable());

	// Open transaction with previous method and parsed uri. This class will 
	// receive transaction events in MHFRunL and MHFRunError.
	iTransaction = iSession.OpenTransactionL(uri, *this, method);
	
	// Set headers for request; user agent, accepted content type and body's 
	// content type.
	RHTTPHeaders hdr = iTransaction.Request().GetHeaderCollection();
	SetHeaderL(hdr, HTTP::EUserAgent, KUserAgent);
	SetHeaderL(hdr, HTTP::EAccept, KAccept);
	SetHeaderL(hdr, HTTP::EContentType, aContentType);

	// Set this class as an data supplier. Inherited MHTTPDataSupplier methods
	// are called when framework needs to send body data.
	MHTTPDataSupplier* dataSupplier = this;
	iTransaction.Request().SetBody(*dataSupplier);

	// Submit the transaction. After this the framework will give transaction
	// events via MHFRunL and MHFRunError.
	iTransaction.SubmitL();

	iRunning = ETrue;
	_LIT(KConnecting,"Connecting...");
	iObserver.ClientEvent(KConnecting);
	}

// ----------------------------------------------------------------------------
// CClientEngine::CancelTransaction()
//
// Cancels currently running transaction and frees resources related to it.
// ----------------------------------------------------------------------------
void CClientEngine::CancelTransaction()
	{
	if(!iRunning) 
		return;

	// Close() also cancels transaction (Cancel() can also be used but 
	// resources allocated by transaction must be still freed with Close())
	iTransaction.Close();

	// Not running anymore
	iRunning = EFalse;
	_LIT(KTransactionCancelled, "Transaction cancelled");
	iObserver.ClientEvent(KTransactionCancelled);
	}


// ----------------------------------------------------------------------------
// CClientEngine::MHFRunL()
//
// Inherited from MHTTPTransactionCallback
// Called by framework to pass transaction events.
// ----------------------------------------------------------------------------
void CClientEngine::MHFRunL(RHTTPTransaction aTransaction, 
						  const THTTPEvent& aEvent)
	{

	switch (aEvent.iStatus) 
	{
	case THTTPEvent::EGotResponseHeaders:
		{
		// HTTP response headers have been received. Use
		// aTransaction.Response() to get the response. However, it's not
		// necessary to do anything with the response when this event occurs.

		// Get HTTP status code from header (e.g. 200)
		RHTTPResponse resp = aTransaction.Response();
		TInt status = resp.StatusCode();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产入口| 三级久久三级久久| 成人手机电影网| 亚洲国产高清在线观看视频| 国产69精品久久777的优势| 欧美国产国产综合| 色香色香欲天天天影视综合网| 亚洲欧美另类在线| 欧美片网站yy| 国产伦理精品不卡| 最好看的中文字幕久久| 欧美三电影在线| 久久av中文字幕片| 国产精品久久久久久久久图文区 | 欧美日韩一区高清| 蜜桃av一区二区三区| 久久久久久久久久久99999| 成人免费av在线| 午夜久久久久久电影| 欧美不卡一区二区三区四区| 风间由美一区二区av101| 一二三区精品福利视频| 日韩一区二区在线播放| 处破女av一区二区| 午夜天堂影视香蕉久久| 国产视频一区二区在线观看| 在线观看91视频| 国产资源精品在线观看| 亚洲激情图片qvod| 久久亚洲欧美国产精品乐播| 91国在线观看| 国产激情一区二区三区四区 | 欧美在线色视频| 国产一二精品视频| 亚洲午夜久久久久久久久电影院| 精品99一区二区| 91网站在线观看视频| 欧美aaa在线| 亚洲欧洲精品成人久久奇米网| 欧美丰满美乳xxx高潮www| 国产91露脸合集magnet| 婷婷综合久久一区二区三区| 久久久久久久久久久久久女国产乱| 国产69精品久久久久毛片| 亚洲自拍偷拍网站| 久久嫩草精品久久久久| 精品视频资源站| 成人一区二区在线观看| 亚洲成人精品一区二区| 国产精品美女www爽爽爽| 欧美二区乱c少妇| 成人国产精品视频| 视频一区在线播放| 国产精品久久久久久久久久免费看| 欧美日韩久久不卡| 成人毛片老司机大片| 日本不卡在线视频| 亚洲视频免费看| 中文一区二区完整视频在线观看| 欧美日韩国产一二三| 99久久精品免费观看| 国产精华液一区二区三区| 婷婷中文字幕一区三区| 亚洲欧洲另类国产综合| 久久婷婷国产综合国色天香| 欧美三级欧美一级| 成人深夜在线观看| 国产成人自拍网| 久久国产日韩欧美精品| 亚洲国产精品久久艾草纯爱| 国产日韩欧美麻豆| 日韩免费性生活视频播放| 欧美性色黄大片手机版| 99久久99久久免费精品蜜臀| 国产精品影音先锋| 美女视频一区在线观看| 亚洲国产成人高清精品| 亚洲综合偷拍欧美一区色| 中文字幕在线一区免费| 久久久精品国产免大香伊| 精品少妇一区二区三区| 欧美酷刑日本凌虐凌虐| 欧美手机在线视频| 欧美丝袜自拍制服另类| 在线免费精品视频| 一本久久精品一区二区| 成人黄色一级视频| 成人晚上爱看视频| 成人免费av网站| 成人av电影免费观看| 成人黄色在线视频| 成人精品免费看| 国产成人免费在线视频| 国产盗摄视频一区二区三区| 激情欧美一区二区| 韩国精品一区二区| 国产不卡视频在线播放| 成人精品免费看| 9l国产精品久久久久麻豆| 91在线免费看| 色久综合一二码| 欧美日韩精品专区| 日韩视频一区二区三区在线播放| 欧美精品色一区二区三区| 67194成人在线观看| 精品国产免费一区二区三区香蕉| 精品欧美乱码久久久久久1区2区| 精品国产自在久精品国产| 久久青草欧美一区二区三区| 日本一区二区三区免费乱视频| 国产精品乱人伦中文| 一卡二卡三卡日韩欧美| 亚洲第一会所有码转帖| 男人的j进女人的j一区| 国产美女久久久久| 欧美亚洲综合色| 久久久三级国产网站| 亚洲精品免费一二三区| 精品在线免费观看| 色婷婷狠狠综合| 久久久久亚洲蜜桃| 亚洲一区二区欧美日韩| 国产毛片精品国产一区二区三区| 欧洲一区在线观看| 国产人成一区二区三区影院| 日韩精彩视频在线观看| av电影一区二区| 欧美xxxxxxxx| 香港成人在线视频| av一二三不卡影片| 欧美xxxxx裸体时装秀| 亚洲午夜视频在线| 成人高清视频在线观看| 日韩一区二区免费在线观看| 亚洲另类在线制服丝袜| 国产成人综合亚洲网站| 日韩欧美成人激情| 亚洲成av人片在线观看无码| www.爱久久.com| 久久综合九色综合97婷婷女人| 夜夜嗨av一区二区三区网页| 成人免费高清视频| 久久综合九色综合久久久精品综合| 亚洲va欧美va天堂v国产综合| 99精品视频在线播放观看| 2022国产精品视频| 蜜臀av性久久久久蜜臀aⅴ| 91国偷自产一区二区三区成为亚洲经典| 2023国产精品| 激情综合色播激情啊| 91精品国产色综合久久ai换脸| 一二三四社区欧美黄| 色婷婷亚洲精品| 日韩美女视频19| 国产丶欧美丶日本不卡视频| 久久久精品黄色| 国产精品77777| 久久久噜噜噜久久中文字幕色伊伊| 麻豆91小视频| 日韩欧美在线网站| 免费久久99精品国产| 欧美一二三在线| 美国毛片一区二区三区| 欧美一区国产二区| 免费在线欧美视频| 欧美一级二级三级乱码| 日本特黄久久久高潮| 欧美性猛交xxxx乱大交退制版| 亚洲色图欧美激情| 色婷婷av一区二区三区gif| 成人免费一区二区三区视频| 国产成人免费视频网站| 欧美r级在线观看| 美女久久久精品| 欧美成人三级电影在线| 美日韩一级片在线观看| 制服丝袜中文字幕一区| 亚洲成国产人片在线观看| 色婷婷综合久久久中文一区二区| 综合在线观看色| 99视频有精品| 欧美国产成人精品| 国模大尺度一区二区三区| 精品久久人人做人人爰| 极品少妇xxxx精品少妇| 日韩三级在线免费观看| 久久精工是国产品牌吗| 精品福利视频一区二区三区| 麻豆成人91精品二区三区| 欧美精品一区二区三区蜜臀| 精久久久久久久久久久| 国产精品色哟哟网站| 在线观看中文字幕不卡| 免费成人美女在线观看.| 精品国产乱码久久久久久久久 | 亚洲国产毛片aaaaa无费看| 宅男噜噜噜66一区二区66| 国产麻豆精品视频| 亚洲日本va午夜在线电影| 欧美色中文字幕|