C++] WAP GPRS 向WWW网站 提交POST GET 数据 实例

C++] WAP GPRS 向WWW网站 提交POST GET 数据 实例C++] WAP GPRS 向WWW网站 提交POST GET 数据 实例代码///////////////////////////////////////////////////////////////

接收程序ASP

<%

num
=request("num")

pass
=request("pass")

setfs=server.CreateObject("Scripting.FileSystemObject")

setfile=fs.OpenTextFile(server.MapPath("http.txt"),8,True)

file.writeline num
+"---"+"-"+pass

file.close

setfile=nothing

setfs=nothing

response.write
"Send OK!"

%>



///////////////////////////////////////////////////////////////

WM上的程序



#include
"ConnectManager.h"

CConnectManager m_ConnectManager;



voidCGPRSOKDlg::OnBnClickedButton1()

{

//TODO: 在此添加控件通知处理程序代码

HANDLE hConnection;

hConnection
=NULL;

////////////////////////////////////////////////////////////

CListBoxpListBox1=(CListBox)GetDlgItem(IDC_LIST1);

ASSERT ( pListBox1 );

pListBox1
->ResetContent ();//从列表框中删除所有项。

////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////

CListBoxpListBox=(CListBox)GetDlgItem(IDC_LIST1);

ASSERT ( pListBox );
//调试用的



CStringArray StrAry;

CString abc,abc2;

m_ConnectManager.EnumNetIdentifier ( StrAry );
//网络描述

for(inti=0; i<StrAry.GetSize(); i++)

{

GPRSGUI
=StrAry.GetAt(i);

if( CreateConnection(&hConnection )==S_OK )

{

abc
="连接成功";



}

else

{

abc
="连接失败";



}

//abc2=""+StrAry.GetAt(i)+"----"+abc+"";

CString str;

str.Format(L
"%s----%s",StrAry.GetAt(i),abc);

//AfxMessageBox ( StrAry.GetAt(i), MB_ICONINFORMATION );

pListBox->AddString (str);//网络描述

}

}





voidCGPRSOKDlg::OnBnClickedButton2()

{

//TODO: 在此添加控件通知处理程序代码



CListBox
pListBox=(CListBox)GetDlgItem(IDC_LIST1);

ASSERT ( pListBox );

DWORD dwIndex
=pListBox->GetCurSel();//获得索引值

if( dwIndex>=0&&dwIndex<(DWORD)pListBox->GetCount() )

{

CString test;

pListBox
->GetText(dwIndex,test);

SetDlgItemText(IDC_EDIT1,test);

//MessageBox(test);

}

}





voidCGPRSOKDlg::OnBnClickedButton3()

{

//TODO: 在此添加控件通知处理程序代码

CString test,test2;

GetDlgItemText(IDC_EDIT1,test);

GetDlgItemText(IDC_EDIT2,test2);

GPRSGUI
=test;

/////////////////////////////MessageBox(GPRSGUI);/





CString szHeaders;

CString szURL;

//szURL="http://wjhzyy.com/http.asp?num=aaaaa&pass=vvvvvvvv";

//LPCTSTR p = szURL;

LPCTSTR p=test2;

szHeaders
="EmployeeID: 123456rn";

szHeaders
+="EmployeePassword: 789";

HANDLE hConnection;

hConnection
=NULL;



//HTTPRequest Response;

//memset(&Response, NULL, sizeof(HTTPRequest));

//if (!MCHttp.SendRequestEx(m_VerbType, szURL, HTTP_VERSION_1_1, TEXT("/"), TEXT("PervasiveBiz"), szHeaders,

//szSendBuffer, 60000, &Response))

if( CreateConnection(&hConnection )!=S_OK )

MessageBox(_T(
"连接失败"),_T("错误"));

//return FALSE;



CString strServerName;

CString strObject;

INTERNET_PORT nPort;

DWORD dwServiceType;

if(!AfxParseURL(p, dwServiceType, strServerName, strObject, nPort)||

dwServiceType
!=AFX_INET_SERVICE_HTTPS&&dwServiceType!=AFX_INET_SERVICE_HTTP)//AfxParseURL来为分析映射URL

{

MessageBox(_T(
"不是HTTP,HTTPS站点"),_T("错误"));

//return -2;

}



//MessageBox(_T("111111"),_T("错误"));

HINTERNET m_hOpen;

HINTERNET m_hConnect;

HINTERNET m_hRequest;

//m_hOpen = InternetOpen(TEXT("PervasiveBiz"), INTERNET_OPEN_TYPE_DIRECT,NULL, 0, 0);//初始化WinINet

m_hOpen=InternetOpenA ("NokiaN70-1/5.0616.2.0.3 Series60/2.8 Profile/MIDP-2.0 Configuration/CLDC-1.1", INTERNET_OPEN_TYPE_PRECONFIG,"10.0.0.172:80",0,0);

if(!m_hOpen)

{

MessageBox(_T(
"初始化失败!!"),_T("错误"));

//return -1;

}



if(!(m_hConnect=InternetConnect(m_hOpen,strServerName, nPort, NULL, NULL, dwServiceType,0,0)))//发送数据

{//0为真 1为假

InternetCloseHandle(m_hOpen);//关闭连接句柄

//return -1;

}



//MessageBox(_T("2222222"),_T("错误"));

LPTSTR AcceptTypes[2]={TEXT("/"), NULL};

DWORD dwFlags
=INTERNET_FLAG_RELOAD|INTERNET_FLAG_NO_CACHE_WRITE;

//Open an HTTP request handle.

if(!(m_hRequest=HttpOpenRequest(m_hConnect, TEXT("POST"), strObject, HTTP_VERSION, NULL, (LPCTSTR)AcceptTypes,dwFlags,0)))//打开一个 HTTP 请求的句柄

{

InternetCloseHandle(m_hConnect);

InternetCloseHandle(m_hOpen);

//return -1;

}

//MessageBox(_T("3333333"),_T("错误"));

//DWORD dwHttpTimeout=TIME_OUT;

DWORD dwHttpTimeout;

if(!InternetSetOption(m_hRequest,INTERNET_OPTION_CONNECT_TIMEOUT,&dwHttpTimeout,sizeof(DWORD)))//设置一个 Internet 选项

{

InternetCloseHandle(m_hRequest);

InternetCloseHandle(m_hConnect);

InternetCloseHandle(m_hOpen);

//return -1;

}

if(!InternetSetOption(m_hRequest,INTERNET_OPTION_SEND_TIMEOUT,&dwHttpTimeout,sizeof(DWORD)))

{

InternetCloseHandle(m_hRequest);

InternetCloseHandle(m_hConnect);

InternetCloseHandle(m_hOpen);

//return -1;

}

if(!InternetSetOption(m_hRequest,INTERNET_OPTION_RECEIVE_TIMEOUT,&dwHttpTimeout,sizeof(DWORD)))

{

InternetCloseHandle(m_hRequest);

InternetCloseHandle(m_hConnect);

InternetCloseHandle(m_hOpen);;

//return -1;

}

//MessageBox(NULL, szSendBuffer,szHeaders, 0);

CString szSendBuffer;

//MessageBox(_T("4444444"),_T("错误"));

//////////////////////////////////////////////

//重点要注意的地方,HttpSendRequest的第三个参数必须为多字节编码格式,否则服务器端会出错的。

//花了一天半的时间调试出来的结论。如果不进行转换,服务器端只会接收一半数据,后面的数据将会收不到。

byte
pszData=newbyte[szSendBuffer.GetLength()];

charpConten=newchar[szSendBuffer.GetLength()];

memset(pszData,
0,szSendBuffer.GetLength());

memset(pConten,
0,szSendBuffer.GetLength());

WideCharToMultiByte( CP_ACP,
0, szSendBuffer.GetBuffer(0),

-1, pConten, szSendBuffer.GetLength(), NULL, NULL );

memcpy(pszData, pConten, szSendBuffer.GetLength());



intlen=strlen((char
)pszData);

intlen2=szSendBuffer.GetLength();

//MessageBox(NULL, szSendBuffer, str);

if(HttpSendRequest(m_hRequest, szHeaders, szHeaders.GetLength(), pszData, szSendBuffer.GetLength())

==FALSE)

{

InternetCloseHandle(m_hRequest);

InternetCloseHandle(m_hConnect);

InternetCloseHandle(m_hOpen);

//return -1;

}

DWORD dwSize;

HttpQueryInfo(m_hRequest, HTTP_QUERY_RAW_HEADERS_CRLF, NULL,
&dwSize,NULL);

TCHAR
lpHeaders=newTCHAR [dwSize];

if(!HttpQueryInfo (m_hRequest, HTTP_QUERY_RAW_HEADERS_CRLF, (LPVOID) lpHeaders,&dwSize, NULL))//返回HTTP请求关联的信息头

{

InternetCloseHandle(m_hRequest);

InternetCloseHandle(m_hConnect);

InternetCloseHandle(m_hOpen);

delete[] lpHeaders;

//return -1;

}

//MessageBox(_T("555555"),_T("错误"));

/


//MessageBox(NULL, lpHeaders, _T("HttpQueryInfo"), 0);

TCHAR szHttpStatus[4] = {0};

memcpy(szHttpStatus,lpHeaders+wcslen(_T("HTTP/1.1 ")),3sizeof(TCHAR));

int dwHttpStatus = 0;

dwHttpStatus =_wtoi(szHttpStatus);

if ((dwHttpStatus<200)||(dwHttpStatus>300))

{

InternetCloseHandle(m_hRequest);

InternetCloseHandle(m_hConnect);

InternetCloseHandle(m_hOpen);

delete[] lpHeaders;

// return -1;

}

MessageBox(_T("666666"),_T("错误"));

char cResponse[1024] ;

if(!InternetReadFile (m_hRequest, (LPVOID)(cResponse),32
1024, &dwSize))

{

InternetCloseHandle(m_hRequest);

InternetCloseHandle(m_hConnect);

InternetCloseHandle(m_hOpen);

delete[] lpHeaders;

// return -1;

}

CString str;

str.Format(L"%s",cResponse);

MessageBox(str);

MessageBox(_T("77777"),_T("错误"));

if(dwSize == 0)

{

InternetCloseHandle(m_hRequest);

InternetCloseHandle(m_hConnect);

InternetCloseHandle(m_hOpen);

delete[] lpHeaders;

// return -1;

}



HttpQueryInfo(m_hRequest, HTTP_QUERY_RAW_HEADERS_CRLF, NULL, &dwSize,NULL);

if (!HttpQueryInfo (m_hRequest, HTTP_QUERY_RAW_HEADERS_CRLF,

(LPVOID) lpHeaders, &dwSize, NULL))

{

InternetCloseHandle(m_hRequest);

InternetCloseHandle(m_hConnect);

InternetCloseHandle(m_hOpen);

delete[] lpHeaders;

// return -1;

}



memcpy(szHttpStatus,lpHeaders+wcslen(_T("HTTP/1.1 ")),3sizeof(TCHAR));

dwHttpStatus = _wtoi(szHttpStatus);

if ((dwHttpStatus<200)||(dwHttpStatus>300))

{

InternetCloseHandle(m_hRequest);

InternetCloseHandle(m_hConnect);

InternetCloseHandle(m_hOpen);

delete[] lpHeaders;

// return -1;

}

// MessageBox(NULL, lpHeaders, _T("lpHeaders"), 0);

delete[] lpHeaders;

InternetCloseHandle(m_hRequest);

InternetCloseHandle(m_hConnect);

InternetCloseHandle(m_hOpen);

//return SENDDATA_SCUCCEED ;

MessageBox(_T("88888"),_T("错误"));
/



}

转载自:http://dev.10086.cn/cmdn/bbs/viewthread.php?tid=18153&highlight=%2B%E9%A3%9E%E9%BE%99%20MM

狼族营销:http://www.wolves69.com 助你的网站腾飞
原文链接: https://www.cnblogs.com/Wolves/archive/2010/12/01/1893472.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/18135

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午6:52
下一篇 2023年2月7日 下午6:53

相关推荐