亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
99久久婷婷国产综合精品电影 | 国产成人8x视频一区二区| 欧美日本韩国一区二区三区视频 | 国产精品不卡在线| 91在线视频网址| 亚洲精品国产无套在线观| 欧美性猛片xxxx免费看久爱| 一区二区三区在线视频观看| 欧美日韩一区二区三区四区五区| 性欧美疯狂xxxxbbbb| 欧美电影免费观看完整版| 国产精品资源在线观看| 国产精品久久久久影院| 欧美日韩一二三区| 激情综合色综合久久综合| 国产精品乱码人人做人人爱| 在线观看三级视频欧美| 久久国产精品72免费观看| 亚洲欧美在线观看| 在线观看91av| 波多野结衣91| 免费成人在线观看视频| 国产精品午夜春色av| 欧美日产在线观看| 亚洲成av人片一区二区三区| 久久久久高清精品| 色噜噜狠狠一区二区三区果冻| 日韩高清一级片| 国产精品久久久久桃色tv| 欧美三级视频在线| 成人免费av网站| 蜜臀av亚洲一区中文字幕| 中文字幕中文字幕在线一区| 欧美日韩电影一区| 99久久777色| 国产乱人伦精品一区二区在线观看| 亚洲人成电影网站色mp4| 日韩免费观看2025年上映的电影| 99精品国产一区二区三区不卡| 爽好多水快深点欧美视频| 国产精品视频你懂的| 欧美一区二区三级| 99久久精品国产网站| 久久成人av少妇免费| 亚洲综合在线视频| 国产精品免费视频网站| 精品国产亚洲在线| 日韩一区二区三区在线| 91亚洲精品久久久蜜桃| 国产成人午夜高潮毛片| 日本不卡在线视频| 亚洲线精品一区二区三区| 国产精品毛片久久久久久久| 欧美精品一区二区蜜臀亚洲| 欧美性大战xxxxx久久久| 99re成人在线| 波多野结衣精品在线| 国产一区二区91| 久久97超碰国产精品超碰| 日韩精品欧美成人高清一区二区| 亚洲一区二区综合| 18欧美乱大交hd1984| 欧美极品少妇xxxxⅹ高跟鞋| 2022国产精品视频| 精品久久人人做人人爰| 日韩三级视频在线观看| 欧美一级在线视频| 欧美一区二区三区系列电影| 884aa四虎影成人精品一区| 欧美午夜电影一区| 欧美午夜片在线看| 欧洲一区二区三区在线| 色综合天天综合网天天看片| 99精品视频免费在线观看| av网站一区二区三区| 国产精品中文有码| 极品少妇一区二区| 国产乱子伦一区二区三区国色天香| 韩国欧美国产1区| 国产盗摄精品一区二区三区在线| 国产精品一区二区在线观看不卡| 韩日欧美一区二区三区| 国产高清不卡二三区| 粉嫩av一区二区三区粉嫩| 成人爽a毛片一区二区免费| 成人午夜激情在线| 不卡av在线网| 欧洲一区二区三区免费视频| 欧美日韩激情在线| 精品国产一区a| 欧美国产欧美亚州国产日韩mv天天看完整| 久久精品亚洲麻豆av一区二区| 欧美精彩视频一区二区三区| 亚洲图片你懂的| 一区二区三区日韩欧美精品| 亚洲大片免费看| 久久精品72免费观看| 国产激情精品久久久第一区二区| av一区二区三区在线| 欧美日韩中文国产| 精品sm在线观看| 中文字幕亚洲不卡| 日韩高清在线一区| 成人国产精品免费观看| 欧美在线短视频| 久久影院午夜论| 亚洲乱码国产乱码精品精98午夜| 日日夜夜免费精品视频| 国产精品香蕉一区二区三区| 91黄色激情网站| 精品久久久久一区| 亚洲三级在线观看| 看国产成人h片视频| 99国产精品国产精品毛片| 欧美久久婷婷综合色| 久久精品男人天堂av| 亚洲成人一区在线| 国产乱码精品一区二区三| 欧美日韩一区二区在线观看视频| 精品日韩一区二区三区免费视频| 一区视频在线播放| 激情五月婷婷综合网| 色婷婷久久久久swag精品| 精品国产免费人成在线观看| 一区二区三区四区国产精品| 国产一区视频在线看| 欧美三区免费完整视频在线观看| 日本一区二区三区免费乱视频| 亚洲一级片在线观看| 成人激情小说网站| 欧美成人高清电影在线| 亚洲国产aⅴ成人精品无吗| 国产成人av福利| 日韩一区和二区| 亚洲小说欧美激情另类| 成人免费av在线| 欧美精品一区在线观看| 午夜欧美在线一二页| 色偷偷一区二区三区| 中文字幕+乱码+中文字幕一区| 日韩av在线播放中文字幕| 色欧美片视频在线观看在线视频| 久久婷婷成人综合色| 麻豆91精品视频| 欧美群妇大交群中文字幕| 亚洲免费观看高清完整版在线| 国产精品一二三在| 日韩一区二区三区高清免费看看 | 欧美老肥妇做.爰bbww| 亚洲日本免费电影| 国产不卡视频在线播放| 久久尤物电影视频在线观看| 捆绑调教一区二区三区| 欧美一区二区女人| 亚洲超碰精品一区二区| 欧美日韩综合在线免费观看| 伊人开心综合网| 日本高清免费不卡视频| 日韩理论在线观看| 91亚洲精品久久久蜜桃网站| 国产精品久久久久久久久久久免费看 | 亚洲女同女同女同女同女同69| 成人性生交大片免费看中文| 国产午夜精品在线观看| 成人一区二区三区| 国产精品久久久一区麻豆最新章节| 国产成人免费av在线| 欧美激情艳妇裸体舞| 成人av网在线| 日韩理论片网站| 在线观看日韩高清av| 午夜电影网一区| 91精品国产综合久久香蕉的特点| 五月激情丁香一区二区三区| 欧美日韩aaa| 久久99国内精品| 国产欧美va欧美不卡在线| 不卡在线视频中文字幕| 亚洲免费观看高清完整| 日本丶国产丶欧美色综合| 亚洲成人综合视频| 日韩欧美一区二区视频| 国产乱码字幕精品高清av| 国产精品二区一区二区aⅴ污介绍| 91在线视频免费观看| 亚洲国产日韩a在线播放性色| 538prom精品视频线放| 国产在线精品免费av| 亚洲国产高清不卡| 精品视频资源站| 麻豆国产精品视频| 国产精品三级视频| 欧美伊人久久大香线蕉综合69| 日韩中文字幕一区二区三区| wwwwxxxxx欧美| 97se亚洲国产综合自在线| 亚洲国产一区二区三区青草影视| 欧美变态口味重另类| 99久久伊人精品| 日本不卡一区二区三区|