0
C++ 응용 프로그램의 일부 데이터를 동일한 컴퓨터의 Apache 서버로 보내려고합니다. 아파치 서버에 POST 요청을 보내기 위해 일부 C++ 코드를 작성했습니다. index.php 페이지의 PHP 스크립트는 데이터를 수집하여 웹 페이지에 출력해야합니다.Apache 웹 서버에 C++로 POST 요청 보내기
내 C++ 코드 : 내 post_req 문자열
void send_post()
{
portno = 80;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
{
cout << "ERROR opening socket" << endl;
}
else {cout << "Socket opened -> ";}
server = gethostbyname("localhost");
if (server == NULL)
{
cout << "ERROR, no such host" << endl;
exit(0);
}
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
bcopy((char *)server->h_addr, (char*)&serv_addr.sin_addr.s_addr,server->h_length);
serv_addr.sin_port = htons(portno);
if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0)
{
cout << "ERROR connecting" << endl;
}
else {cout << "Connected -> ";}
bzero(upcbuffer,512);
sprintf(upcbuffer, "%s", post_req.c_str());
z = write(sockfd,upcbuffer,strlen(upcbuffer));
if (z < 0)
{
cout << "ERROR writing to socket";
}
else {cout << "Wrote successfully to socket" << endl;}
close(sockfd);
cout << "Socket closed now" << endl;
}
: 나는 아무것도 볼 수 없습니다 슬프게도
<?php
print_r($_POST);
?>
의 index.php에
post_req = "POST /index.php HTTP/1.1\r\nHost: localhost\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 8\r\n\r\ntesttest\r\n";
내 PHP 코드 색인 페이지. POST 요청의 형식이 올바른지 확인합니다. 문제를 해결하도록 도와 줄 수 있습니까?
감사 : 여기 읽고 상록를 얻을. POST 요청을 진행 한 index.php 페이지에서 뭔가를 볼 것으로 예상됩니다. 서버에서 응답 할 필요가 없습니다. – Podarce
당신이 말하는 방식에서 나는 브라우저에서 어떤 것을 볼 것으로 예상되는 인상을 받고 있지만 그렇지 않을 것입니다. 귀하의 코드는 '브라우저'이며 거기에 결과를 '보아야'합니다 (즉, 읽음). – marom
정확하게, 미심쩍어합니다. 나는 index.php 페이지에서 브라우저에 어떤 것을 볼 것으로 예상한다. PHP에서 index.php 페이지를 사용하여 서버에서 $ _POST 변수를 가져올 수없는 이유를 이해할 수 없습니다. 서버는 일단 내 요청을 받으면 http를 통해 메시지로 응답해야합니다. 어떤 경우 든 POST 요청의 "본문"으로 보낸 문자열을보아야합니다. 요청이 올바른 형식이어야한다는 것이 확실하기 때문입니다. – Podarce