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

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

?? exampleclientengine.cpp

?? give the example to subit http request
?? 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久久国产免费看| 国产精选一区二区三区| 久久先锋资源网| 色狠狠桃花综合| 国内精品在线播放| 视频一区中文字幕国产| 国产精品久久久久一区| 91久久精品日日躁夜夜躁欧美| 亚洲欧美一区二区在线观看| 日韩三级av在线播放| 91麻豆产精品久久久久久| 韩国精品主播一区二区在线观看| 亚洲免费看黄网站| 欧美激情在线一区二区| 精品免费视频一区二区| 欧美三级在线看| 色天天综合色天天久久| 成人自拍视频在线观看| 久久99精品视频| 日本一区中文字幕| 午夜不卡av免费| 亚洲一区在线观看网站| 综合激情成人伊人| 国产精品毛片a∨一区二区三区| 精品国产乱码久久| 精品少妇一区二区三区视频免付费 | a4yy欧美一区二区三区| 日本精品视频一区二区| 国内国产精品久久| 精品亚洲免费视频| 免费国产亚洲视频| 麻豆精品国产91久久久久久| 首页亚洲欧美制服丝腿| 日本伊人精品一区二区三区观看方式| 亚洲va韩国va欧美va精品| 亚洲伦在线观看| 一区二区三区精密机械公司| 亚洲欧美另类图片小说| 亚洲欧洲中文日韩久久av乱码| 中文乱码免费一区二区| 国产精品久久毛片a| 日本一区二区动态图| 国产精品免费观看视频| 国产精品高清亚洲| 亚洲另类在线视频| 亚洲一区二区免费视频| 天天色综合天天| 日韩精彩视频在线观看| 久久国产精品一区二区| 经典一区二区三区| 国产不卡一区视频| av在线不卡网| 欧美三级日韩三级| 精品美女在线播放| 欧美精品一区视频| 国产精品久久久久婷婷二区次| 亚洲婷婷在线视频| 天天av天天翘天天综合网| 免费不卡在线观看| 国产高清在线精品| 97se亚洲国产综合自在线观| 欧美性猛片aaaaaaa做受| 欧美嫩在线观看| 久久九九99视频| 亚洲三级电影网站| 日韩福利视频网| 国产精品一区免费视频| 一本久久精品一区二区| 欧美福利视频导航| 国产亚洲欧洲997久久综合| 亚洲男人的天堂在线aⅴ视频| 亚洲成精国产精品女| 精品一区二区三区在线观看| 成人a区在线观看| 欧美日韩国产片| 久久久久久久久久久久电影 | 亚洲自拍偷拍九九九| 天堂蜜桃91精品| 国产麻豆日韩欧美久久| 色老头久久综合| 精品日韩成人av| 最新国产の精品合集bt伙计| 三级一区在线视频先锋| 成人中文字幕合集| 欧美日本一区二区在线观看| 国产日产亚洲精品系列| 亚洲成人免费av| 成人午夜又粗又硬又大| 欧美二区三区的天堂| 国产精品理论在线观看| 日韩精品成人一区二区在线| av男人天堂一区| 日韩免费看网站| 一区二区三区在线免费播放| 国产一区二三区好的| 欧美性xxxxxx少妇| 亚洲国产精品成人久久综合一区| 婷婷亚洲久悠悠色悠在线播放| 成人少妇影院yyyy| 日韩欧美电影在线| 亚洲午夜免费电影| 成人aa视频在线观看| 日韩色在线观看| 亚洲一区二区在线免费看| 成人午夜视频免费看| 日韩免费观看2025年上映的电影| 一区二区理论电影在线观看| 国产成人免费视频精品含羞草妖精| 欧美精品久久久久久久多人混战 | 91精品国产欧美一区二区成人| 亚洲欧洲av在线| 国产一区二区精品久久91| 欧美一区二区在线免费播放| 一区二区三区在线观看网站| 成人黄页毛片网站| 久久综合国产精品| 麻豆精品精品国产自在97香蕉 | 色诱视频网站一区| 国产精品动漫网站| 国产91精品免费| 26uuu国产电影一区二区| 五月激情综合网| 欧美日韩高清不卡| 亚洲高清一区二区三区| 色综合天天天天做夜夜夜夜做| 国产精品美女久久久久aⅴ国产馆| 国产毛片精品国产一区二区三区| 日韩免费看的电影| 久久电影国产免费久久电影| 欧美一区二区三区四区视频 | 国产电影一区二区三区| 久久综合视频网| 国产一区二区在线看| 精品国产第一区二区三区观看体验| 免费一级片91| 欧美va亚洲va国产综合| 久久99在线观看| 久久综合色婷婷| 大尺度一区二区| 亚洲图片另类小说| 日本丶国产丶欧美色综合| 亚洲激情第一区| 欧美午夜不卡在线观看免费| 亚洲高清久久久| 91精品国产一区二区| 久久精品国产免费| 久久久久久毛片| 99热在这里有精品免费| 亚洲免费大片在线观看| 欧美在线视频日韩| 日本一不卡视频| 久久久亚洲欧洲日产国码αv| 成人一级视频在线观看| 亚洲免费看黄网站| 欧美高清hd18日本| 狠狠狠色丁香婷婷综合久久五月| 久久色在线视频| 成人av动漫在线| 亚洲午夜精品一区二区三区他趣| 欧美精品高清视频| 韩国精品一区二区| 中文字幕视频一区| 欧美三级蜜桃2在线观看| 欧美a一区二区| 国产日韩欧美高清| 91国产免费看| 麻豆高清免费国产一区| 国产精品拍天天在线| 欧美性xxxxxxxx| 精品一区二区日韩| 亚洲啪啪综合av一区二区三区| 欧美巨大另类极品videosbest | 在线免费亚洲电影| 蜜桃av噜噜一区| 国产精品丝袜一区| 欧美美女黄视频| 东方欧美亚洲色图在线| 一区二区三区视频在线观看| 日韩欧美国产一二三区| 91亚洲精品久久久蜜桃| 美腿丝袜一区二区三区| 综合欧美亚洲日本| 日韩欧美亚洲一区二区| 97成人超碰视| 精品在线播放午夜| 亚洲综合一二三区| 久久精品视频在线看| 欧美图区在线视频| 福利一区福利二区| 欧美a级理论片| 亚洲精品高清视频在线观看| 亚洲精品在线网站| 欧美三级韩国三级日本三斤| 国产激情视频一区二区在线观看| 午夜视频在线观看一区二区| 久久精品一区二区三区av| 欧美老人xxxx18| 91麻豆.com| 国产不卡视频一区| 久久精品av麻豆的观看方式|