(ä¸)getæ¹æ³åpostæ¹æ³ç®ä»
æ¥çäºMSDNï¼å¹¶ä¸å®é
åäºä¸çªç¨åºï¼ææç½getæ¹æ³åpostæ¹æ³çä¸åãå
¶å®äºè
å®ç°çåè½ç¸åï¼é½æ¯å®¢æ·ç«¯æ交æ°æ®åºç»æå¡å¨ç«¯ï¼åªæ¯å®ç°çæºå¶ä¸åèå·²ãgetæ¹æ³å®é
ä¸å°±æ¯éè¿ç½é¡µçURLå°åå®ç°æ°æ®çä¼ éï¼èæå¡å¨ç«¯å®ç°ä»URLå°åä¸è§£ææ°æ®ï¼èpostæ¹æ³åæ¯éè¿è¡¨åçæ¹å¼æ交ï¼æ°æ®éåå å¯æ¹å¼ä¼ éï¼æå¡å¨æ¥å°è¯·æ±å解ææ°æ®ãä»å®å
¨è§åº¦ä¸çï¼postæ¹æ³æ´å®å
¨ï¼getæ¹æ³å¯ä»¥ç´æ¥ä»æµè§å¨ç´æ¥æ交æ°æ®ï¼èpostæ¹æ³åå¿
é¡»ä»ç½é¡µæ交表åã
(äº)getæ¹æ³åpostæ¹æ³å®ç°
å°å¦äºä¸éï¼è¿æ¯è®²è®²ä¸¤ç§æ¹æ³å¦ä½å®ç°çå§ã
1ãgetæ¹æ³VCå®ç°
é²è¯å°è¯´ï¼ç´æ¥ç代ç ï¼VC6.0æ åç±»åºå½æ°CInternetSession,æ´è¯¦ç»çç¨æ³ï¼è¯·æ¥çMSDNã
CInternetSession tInternet;
CStdioFile* tFile;
char tChars[2056];
memset(tChars,0,2056);
sprintf(tChars,"%s","
http://127.0.0.1:8080/app?username=123&password=123&data=111111111111");
tFile = tInternet.OpenURL(tChars,1, INTERNET_FLAG_TRANSFER_ASCII,NULL,0);
memset(tChars,0,2056);
tFile->Read(tChars,2056);
åéçè¶
é¾æ¥ä¸ï¼appæ¯æ°æ®åºç¨ç¨åºé¨ç½²ï¼å¨æ°æ®åºç«¯è¦æ该ç¨åºçååºï¼æ°æ®åºæä¼æ¥æ¶æ°æ®ãç¨åºçæ°æ®å·²ç»ä¿åå¨äºè¯¥URLä¸ã
å
¶å®åéURLçæ¹æ³æå¾å¤ï¼APIå½æ°ï¼C++ Builderä¸ç空é´é½å¯ä»¥å®ç°è¯¥åè½ã
2ãpostæ¹æ³å®ç°
(1)ãä»ç¶ä½¿ç¨CInternetSessionç±»
char chHeader[128];
char chData[128];
char tChars[128];
memset(tChars,0,128);
CInternetSession session;
CHttpConnection* pConnection=NULL;
CHttpFile* pFile=NULL;
INTERNET_PORT nPort=8080;
strcpy(chHeader,"Content-Type: application/x-www-form-urlencoded");
strcpy(chData,"username=123&password=123&data=123456789012345");
pConnection = session.GetHttpConnection("127.0.0.1",nPort);
pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST,"/app");
pFile->SendRequest(chHeader,(DWORD)strlen(chHeader),(LPVOID *)chData,strlen(chData));
pFile->Read(tChars,128);
session.Close();
(2)ã使ç¨TCP/IPåè®®ä¼ è¾æ°æ®
SOCKADDR_IN saServer;
LPHOSTENT lphostent;
WSADATA wsadata;
SOCKET hsocket;
int nRet;
const char* host_name="127.0.0.1";
char* req=
"POST
http://127.0.0.1:8080/app?username=123&password=123&data=111111111111 HTTP/1.1\r\n"
"From: local\r\n"
"User-Agent: receiver/Receiver/1.1\r\n"
"Content-Type: application/x-www-form-urlencoded\r\n"
"Content-Length: 0\r\n\r\n";
char tChars[128];
if(WSAStartup(winsock_version,&wsadata))
{
MessageBox("can't initial socket");
}
lphostent=gethostbyname(host_name);
if(lphostent==NULL)
{
MessageBox("lphostent is null");
}
hsocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
saServer.sin_family = AF_INET;
saServer.sin_port = htons(8080);
saServer.sin_addr = *((LPIN_ADDR)*lphostent->h_addr_list);
nRet = connect(hsocket, (LPSOCKADDR)&saServer, sizeof(SOCKADDR_IN));
if(nRet == SOCKET_ERROR)
{
MessageBox("Can't connect");
closesocket(hsocket);
return;
}
else
{
MessageBox("connected with host");
}
nRet = send(hsocket, req, strlen(req), 0);
if(nRet == SOCKET_ERROR)
{
MessageBox("send() failed");
closesocket(hsocket);
}
else
{
MessageBox("send() OK");
}
char dest[1000];
nRet=0;
while(nRet>0)
{
nRet=recv(hsocket,(LPSTR)dest,sizeof(dest),0);
if(nRet>0)
{
dest[nRet]=0;
}
else
{
dest[0]=0;
}
sprintf(tChars,"Received bytes:%d",nRet);
MessageBox(tChars);
sprintf(tChars,"Result:%s",dest);
MessageBox(tChars);
}
(2)ã使ç¨APIå½æ°
HINTERNET hInternetOpen = InternetOpen("
http://127.0.0.1:8080/app",
INTERNET_OPEN_TYPE_PRECONFIG,
NULL,
NULL,
0);
if(hInternetOpen < 0 )
{
MessageBox("Can't open the page");
}
HINTERNET hInternetConnect = InternetConnect(hInternetOpen,
"127.0.0.1",
8080,
NULL,
"HTTP/1.1",
INTERNET_SERVICE_HTTP,
0,
0);
if(hInternetConnect < 0 )
{
MessageBox("Can't connect to the server");
}
HINTERNET hHttpOpenRequest = HttpOpenRequest(hInternetConnect,
"POST",
"/IFCS/IMEICheck",
"HTTP/1.1",
NULL,
0,
INTERNET_FLAG_RELOAD,
0);
if(hHttpOpenRequest < 0 )
{
MessageBox("Open request fail");
}
char chData[128] = "username=123&password=123&data=123456789000001";
DWORD len = strlen(chData);
int bRet = HttpSendRequest(hHttpOpenRequest,
"Content-Type: application/x-www-form-urlencoded\r\n",
strlen("Content-Type: application/x-www-form-urlencoded\r\n"),
(LPVOID *)chData,
len);
char tChars[128];
memset(tChars,0,128);
DWORD dwReadLen;
InternetReadFile(hHttpOpenRequest,(LPVOID *)tChars,128,&dwReadLen);
if(dwReadLen > 0)
{
MessageBox(tChars);
}
else
{
MessageBox("Read the reply fail");
}
InternetCloseHandle(hHttpOpenRequest);
InternetCloseHandle(hInternetConnect);
InternetCloseHandle(hInternetOpen);