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

 

代码
///
接收程序ASP
<%
num
= request( " num " )
pass
= request( " pass " )
set fs = server.CreateObject( " Scripting.FileSystemObject " )
set file = fs.OpenTextFile(server.MapPath( " http.txt " ), 8 ,True)
file.writeline num
+ " --- " + " - " + pass
file.close
set file = nothing
set fs = nothing
response.write
" Send OK! "
%>

///
WM上的程序

#include
" ConnectManager.h "
CConnectManager m_ConnectManager;

void CGPRSOKDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
HANDLE hConnection;
hConnection
= NULL;

CListBox * pListBox1 = (CListBox * )GetDlgItem(IDC_LIST1);
ASSERT ( pListBox1 );
pListBox1
-> ResetContent (); // 从列表框中删除所有项。


CListBox * pListBox = (CListBox * )GetDlgItem(IDC_LIST1);
ASSERT ( pListBox );
// 调试用的

CStringArray StrAry;
CString abc,abc2;
m_ConnectManager.EnumNetIdentifier ( StrAry );
// 网络描述
for ( int i = 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); // 网络描述
}
}


void CGPRSOKDlg::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);
}
}


void CGPRSOKDlg::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: 123456\r\n " ;
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 = new byte [szSendBuffer.GetLength()];
char * pConten = new char [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());

int len = strlen(( char * )pszData);
int len2 = 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 = new TCHAR [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 ")),3*sizeof(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 ")),3*sizeof(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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值