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

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

?? httpengine.cpp

?? symbian http/post引擎 xml引擎 支持IAP設置
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*
* ============================================================================
*  Name     : CHttpEngine from HttpEngine.cpp
*  Part of  : 
*  Created  : 08/1/2008 by Forum Nokia
*  Version  : 1.0
*  Copyright: Nokia Corporation
* ============================================================================
*/

// INCLUDE FILES
#include <HttpStringConstants.h>// HTTP
#include <msvids.h>				// KMsvGlobalInBoxIndexEntryId
#include <commdb.h>				// CCommsDatabase
#include <commdbconnpref.h>		// TCommDbConnPref
#include <es_enum.h>			// TConnectionInfoV2Buf
#include <eikenv.h>
#include <HttpTaskManager.rsg>
#include <charconv.h>   

#include "HttpEngine.h"
#include "TaskManager.pan"
#include "Response.h"
#include "HttpConnectionOpener.h"

#include "HTTPDataSupplier.h"

#include "log.h"
#include <flogger.h>

// CONSTANTS
_LIT8(KUserAgent, "HttpEngine 1.0");
_LIT8(KAccept, "*/*");
_LIT8(KContentType, "text/plain");
_LIT8(KXHost,"X-Online-Host:");
_LIT8(KIP,"222.66.92.54");

_LIT8(KUsername, "username");
_LIT8(KPassword, "password");
_LIT8(KTaskId, "task_id");
_LIT8(KJspUrlGetTasksFormat, "https://%S/TaskManagerWebUI/Controller");

//_LIT8(KBodyTest, "<?xml version=\"1.0\" encoding=\"UTF-8\"?><invoke type=\"login\"  xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"  xsi:noNamespaceSchemaLocation=\"http://localhost/mpp/invoke.xsd\" ><return type=\"return\" /><parameters><object name=\"login\" ><property name=\"userid\" >121</property><property name=\"password\" >,a,a,a,a,a,a,a,,</property></object></parameters></invoke>");
//8a7396c619cc53fc0119dc6cedb30102

_LIT(KUserNotSet, "Set username and/or password");
_LIT(KIapNotSet, "IAP not selected");
_LIT(KServerNotSet, "Server name not set");
_LIT(KSmsUpdateMessage, "TaskManagerUpdate");

// ================= MEMBER FUNCTIONS =======================

// constructor
CHttpEngine::CHttpEngine(MTransactionObserver& aObserver)
	:	iTransactionObserver(aObserver)
	{
	}
	
// destructor
CHttpEngine::~CHttpEngine()
	{
	if(iConnOpener)
		{
		delete iConnOpener;
		iConnOpener=NULL;
		}
	iHttpSession.Close();
	iConnection.Close();
	iSockServ.Close();

	iIAPs.Close();
	ResetData();
	
	}

// ----------------------------------------------------
// CHttpEngine::NewL()
// Two-phased constructor.
// ----------------------------------------------------
//	
CHttpEngine* CHttpEngine::NewL(MTransactionObserver& aObserver)
	{
	CHttpEngine* self = new (ELeave) CHttpEngine(aObserver);
	CleanupStack::PushL(self);
	self->ConstructL();
	CleanupStack::Pop(self);
	return self;
	}

// ----------------------------------------------------
// CHttpEngine::ConstructL()
// Symbian OS default constructor can leave.
// ----------------------------------------------------
//	
void CHttpEngine::ConstructL()
	{
	User::LeaveIfError(iSockServ.Connect());
	User::LeaveIfError(iConnection.Open(iSockServ));
	iConnOpener = CHttpConnectionOpener::NewL(iConnection,*this);

	// open RHTTPSession with default protocol ("HTTP/TCP")
	iHttpSession.OpenL();

	// show a dialog when when server certificate needs to be accepted.
	RStringPool stringPool = iHttpSession.StringPool(); 
	RHTTPConnectionInfo connInfo = iHttpSession.ConnectionInfo(); 
	connInfo.SetPropertyL(stringPool.StringF(HTTP::ESecureDialog, RHTTPSession::GetTable()), THTTPHdrVal(stringPool.StringF(HTTP::EDialogPrompt, RHTTPSession::GetTable()))); 
	
	LoadIapsL();
	
	// no IAPs defined in the device.
	if (iIAPs.Count() == 0)
		{
		CEikonEnv::Static()->InfoMsg(R_TASKMANAGER_NO_IAPS_DEFINED);
		}
	
	}




// ----------------------------------------------------
// CHttpEngine::SetConnectionSettingsL()
// Sets all connections settings. If username and 
// password are set, a "HTML form" is created. This 
// form is used for fetching the tasks from the server.
// ----------------------------------------------------
//		
void CHttpEngine::SetConnectionSettingsL(const TDesC& aServerName, 
												const TBool& aPhp,
												const TDesC& aUsername, 
												const TDesC& aPassword,
												const TUint32& aId)
	{
	iUsername.Copy(aUsername);
	iPassword.Copy(aPassword);
	iPhp = aPhp;
	iServer.Copy(aServerName);
	this->iIap=aId;
	}

// ----------------------------------------------------
// CHttpEngine::SetIap()
// Sets the IAP to be used in the HTTP connections.
// ----------------------------------------------------
//	
void CHttpEngine::SetIap(const TUint32& aId)
	{
	iIap = aId;
	}
	
// ----------------------------------------------------
// CHttpEngine::IapSet()
// Returns ETrue if the IAP is set, EFalse if not.
// ----------------------------------------------------
//	
TBool CHttpEngine::IapSet() const
	{
	if (iIap == 0)
		{
		return EFalse;
		}
	else
		{
		return ETrue;
		}
	}

// ----------------------------------------------------
// CHttpEngine::SetHeaderL()
// Sets a field-value pair to an HTTP header.
// ----------------------------------------------------
//
void CHttpEngine::SetHeaderL(RHTTPHeaders aHeaders, 
							 		TInt aHdrField, 
							 		const TDesC8& aHdrValue)
	{
	RStringF valStr = iHttpSession.StringPool().OpenFStringL(aHdrValue);
	CleanupClosePushL(valStr);
	THTTPHdrVal val(valStr);
	aHeaders.SetFieldL(iHttpSession.StringPool().StringF(aHdrField,	RHTTPSession::GetTable()), val);
	CleanupStack::PopAndDestroy(&valStr);
	}
// ----------------------------------------------------
// CHttpEngine::SetHeaderL()
// Sets a field-value pair to an HTTP header.
// ----------------------------------------------------
//
void CHttpEngine::SetHeaderExL(RHTTPHeaders aHeaders, 
										const TDesC8 &aHeaderField,
										const TDesC8 &aHeaderValue)
	{
    RStringPool stringPool = iHttpSession.StringPool();
    RStringF valStr = stringPool.OpenFStringL(aHeaderValue);
    THTTPHdrVal headerVal(valStr);
    RStringF sHeaderField = stringPool.OpenFStringL(aHeaderField);
    aHeaders.SetFieldL(sHeaderField, headerVal);
    valStr.Close();
    sHeaderField.Close();
	}

// ----------------------------------------------------
// CHttpEngine::CheckAndReportErrorsL()
// Checks that all necessary connections settings are 
// set and reports from missing data.
// ----------------------------------------------------
//	
TBool CHttpEngine::CheckAndReportErrorsL()
	{
	if (!IapSet())
		{
		iTransactionObserver.ErrorL(KIapNotSet);
		return ETrue;
		}
/*		
	if (iServer.Length() == 0)
		{
		iTransactionObserver.ErrorL(KServerNotSet);
		return ETrue;
		}
*/
	return EFalse;
	}

// ----------------------------------------------------
// CHttpEngine::PostRequestL()
// Starts fetching tasks from the server.
// ----------------------------------------------------
//		
void CHttpEngine::PostRequestL(const TBool& aLoadingTask,const TDesC8& aBody)
	{
		
	// if connection settings are invalid, just return
	if (CheckAndReportErrorsL())
		{
		return;
		}		
		
	// reset all previously received data.
	ResetData();

//	iDataSupplier = CHttpDataSupplier::NewL(aBody);
	iDataSupplier = CHttpDataSupplier::NewL(aBody);
	
	iUrl.Format(KJspUrlGetTasksFormat, &iServer);	
	
	iLoadingTask=aLoadingTask;

	// open up a (GPRS) connection and post the data.
	ConnectL();
	
	RFileLogger::Write(KLogDir,KLogFileName,EFileLoggingModeAppend,_L("正在進行HTTP連接..."));
	
	}

// ----------------------------------------------------
// CHttpEngine::CreateMarkTaskDoneFormL()
// Creates an HTML form that can be used for completing 
// tasks in the server.
// ----------------------------------------------------
//	
void CHttpEngine::CreateMarkTaskDoneFormL(const TInt& aTaskId)
	{
/*	delete iMarkTaskDoneForm;
	iMarkTaskDoneForm = NULL;

	// username and/or password not set
	if (1 > iUsername.Length() || 1 > iPassword.Length())
		{
		iTransactionObserver.ErrorL(KUserNotSet);
		return;
		}
		
	// reset all previously received data.
	ResetData();	
		
	// create the form
	iMarkTaskDoneForm = CHTTPFormEncoder::NewL();
	iMarkTaskDoneForm->AddFieldL(KUsername, iUsername);
	iMarkTaskDoneForm->AddFieldL(KPassword, iPassword);
	TBuf8<6> id;
	_LIT8(KIdFormat, "%d");
	id.Format(KIdFormat, aTaskId);
	iMarkTaskDoneForm->AddFieldL(KTaskId, id);	*/
	}

// ----------------------------------------------------
// CHttpEngine::MarkTaskDoneL()
// Will post an HTML form to the server, which will mark 
// a task as completed in the server database.
// ----------------------------------------------------
//	
void CHttpEngine::MarkTaskDoneL(const TInt& aTaskId)
	{
/*	CreateMarkTaskDoneFormL(aTaskId);
	if (iMarkTaskDoneForm == NULL)
		{
		return;
		}
		
	// if connection settings are invalid, just return
	if (CheckAndReportErrorsL())
		{
		return;
		}		
	
	iUrl.Format(KJspUrlSetTaskDoneFormat, &iServer);

	iHttpForm = iMarkTaskDoneForm;

	// open up a (GPRS) connection and post the form.
	ConnectL();*/
	}

// ----------------------------------------------------
// CHttpEngine::DoPostL()
// Posts the defined HTML form to the server.
// ----------------------------------------------------
//		
void CHttpEngine::DoPostL()
	{
	TUriParser8 uri;
	User::LeaveIfError(uri.Parse(iUrl));
			
	// Get request method string for HTTP POST
	RStringF method = iHttpSession.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 = iHttpSession.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, KContentType);
//	SetHeadeExL(hdr,KXHost,KIP);


   	iTransaction.Request().SetBody(*iDataSupplier); 	

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

	RFileLogger::Write(KLogDir,KLogFileName,EFileLoggingModeAppend,_L("正在向服務器發送POST請求!"));

	iRunning = ETrue;
	if (this->iLoadingTask)
		{
		iTransactionObserver.ConnectingToServerL(ETrue);
		}
	else
		{
		iTransactionObserver.ConnectingToServerL(EFalse);
		}
	}

// ----------------------------------------------------
// CHttpEngine::MHFRunL()
// Called when the client's registration conditions are 
// satisfied for events that occur on a transaction.
// ----------------------------------------------------
//	
void CHttpEngine::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.
			}
			break;

		case THTTPEvent::EGotResponseBodyData:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久精品免费看| 日韩欧美www| 在线视频欧美区| 99精品视频在线观看免费| 成人久久视频在线观看| 成人毛片老司机大片| 97成人超碰视| 欧美体内she精高潮| 欧美日韩一二三区| 51久久夜色精品国产麻豆| 欧美一区永久视频免费观看| 欧美一级高清片| 欧美成人精品1314www| 久久日韩粉嫩一区二区三区| 国产精品午夜在线| 亚洲欧美综合色| 一区二区三区在线观看国产| 亚洲bt欧美bt精品777| 久久成人精品无人区| 国产成人综合在线观看| 91丨porny丨国产入口| 欧美亚洲综合另类| 日韩精品自拍偷拍| 欧美国产成人精品| 一区二区三区加勒比av| 免费成人在线播放| 成人永久看片免费视频天堂| 91啪在线观看| 欧美精品一卡两卡| 久久免费精品国产久精品久久久久| 久久久99精品免费观看| 亚洲男女毛片无遮挡| 婷婷成人激情在线网| 久久成人久久鬼色| 91婷婷韩国欧美一区二区| 91精品国产91久久综合桃花| www久久精品| 亚洲丝袜美腿综合| 人人精品人人爱| 99久久国产综合色|国产精品| 在线免费观看不卡av| 日韩一区二区三区四区| 久久精品欧美日韩精品 | 中文字幕在线不卡国产视频| 一二三区精品福利视频| 经典三级在线一区| 成人午夜免费av| 91丨九色丨尤物| 久久伊人中文字幕| 久88久久88久久久| 欧美午夜在线一二页| 久久夜色精品国产欧美乱极品| 欧美精品v日韩精品v韩国精品v| 色婷婷综合久久久| eeuss鲁片一区二区三区在线看| 成人高清在线视频| aaa欧美大片| 在线精品视频一区二区三四| 精品噜噜噜噜久久久久久久久试看| 五月天欧美精品| 成人h动漫精品| 久久综合资源网| 亚洲欧美欧美一区二区三区| 韩国理伦片一区二区三区在线播放| 国产一区二区三区在线观看免费视频| 成人av资源在线观看| 国产精品色噜噜| 日韩欧美在线不卡| 色婷婷av久久久久久久| 久久蜜桃一区二区| 国产成人在线视频网址| 亚洲午夜av在线| 视频一区欧美精品| 99re在线精品| 国产丝袜在线精品| 免费日本视频一区| 欧美少妇性性性| 国产精品高潮呻吟久久| 九九久久精品视频| 欧美精品色一区二区三区| 亚洲精品成人在线| 9i看片成人免费高清| 久久亚洲捆绑美女| 久久精品国产77777蜜臀| 欧美探花视频资源| 亚洲精品乱码久久久久久| 成人性生交大合| 久久久久久久电影| 激情都市一区二区| 欧美成人精品1314www| 日本vs亚洲vs韩国一区三区| 欧美日韩国产中文| 天天色天天操综合| 欧美三级乱人伦电影| 亚洲综合色视频| 欧美怡红院视频| 亚洲一二三区不卡| 色狠狠色噜噜噜综合网| 国产精品久久久久影院老司| 成人综合婷婷国产精品久久蜜臀 | 国产成人鲁色资源国产91色综| 欧美一级在线观看| 蜜桃av一区二区| 精品视频一区二区不卡| 亚洲国产精品久久不卡毛片| 欧美在线观看你懂的| 国产精品福利一区| 日韩欧美国产电影| 欧美一区三区二区| 另类专区欧美蜜桃臀第一页| 欧美大黄免费观看| 国内精品免费**视频| 久久女同精品一区二区| 粉嫩av一区二区三区在线播放| 久久精品欧美一区二区三区麻豆| 国产精品中文字幕一区二区三区| 久久久国产一区二区三区四区小说| 国产一区二区三区电影在线观看 | 免费成人结看片| 欧美mv日韩mv亚洲| 国产精品亚洲第一区在线暖暖韩国 | 激情丁香综合五月| 国产精品亲子伦对白| 94-欧美-setu| 亚洲一区二区三区精品在线| 欧美日韩国产片| 精品一区中文字幕| 国产精品婷婷午夜在线观看| 色婷婷综合激情| 日韩激情一区二区| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 欧美日韩国产另类一区| 亚洲一区二区五区| 91精品国产色综合久久不卡蜜臀 | 99精品国产99久久久久久白柏| 亚洲久草在线视频| 这里只有精品99re| 国产成人免费视频 | 91色综合久久久久婷婷| 天天综合色天天综合| wwwwxxxxx欧美| 99国内精品久久| 天堂av在线一区| 国产日韩欧美一区二区三区乱码| eeuss鲁一区二区三区| 偷拍一区二区三区| 日本一区二区视频在线观看| 欧洲人成人精品| 国内精品伊人久久久久影院对白| 亚洲私人黄色宅男| 日韩欧美一级特黄在线播放| 成人av午夜电影| 日本特黄久久久高潮| 亚洲国产精品激情在线观看| 欧美日韩国产综合一区二区 | 国产精品自拍三区| 亚洲天天做日日做天天谢日日欢| 一本久道久久综合中文字幕| 蜜臀av性久久久久蜜臀aⅴ流畅 | 2023国产精品视频| 在线观看成人小视频| 国产成人精品影院| 三级成人在线视频| 亚洲欧洲精品一区二区精品久久久| 欧美性大战久久久久久久蜜臀| 国产精品中文有码| 日韩**一区毛片| 亚洲乱码日产精品bd| 国产欧美日韩麻豆91| 在线电影国产精品| 91色九色蝌蚪| 国产成人免费在线观看| 免费人成在线不卡| 亚洲高清一区二区三区| 国产精品久久久久久久久免费樱桃| 欧美精品乱码久久久久久| 91网页版在线| 成人天堂资源www在线| 国产原创一区二区| 日日欢夜夜爽一区| 亚洲亚洲精品在线观看| 亚洲丝袜自拍清纯另类| 欧美国产日本视频| 久久香蕉国产线看观看99| 日韩一区二区三区在线视频| 精品视频1区2区3区| 91久久国产最好的精华液| 99麻豆久久久国产精品免费 | 9191精品国产综合久久久久久| 不卡一区中文字幕| 国产精品一区二区在线观看网站| 日韩vs国产vs欧美| 视频一区国产视频| 亚洲第一二三四区| 一区二区三区精密机械公司| 亚洲日本丝袜连裤袜办公室| 一色屋精品亚洲香蕉网站| 亚洲国产成人午夜在线一区| 国产网站一区二区三区| 国产三级欧美三级日产三级99 |