der Einsatz von c++ zum senden einer Datei per http-POST

#include <winsock2.h>
#include <windows.h>
#include <iostream>
#pragma comment(lib,"ws2_32.lib")
using namespace std;
int main (){
    WSADATA wsaData;
    if (WSAStartup(MAKEWORD(2,2), &wsaData) != 0) {
        cout << "WSAStartup failed.\n";
        system("pause");
        return 1;
    }
    SOCKET Socket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
    struct hostent *host;
    host = gethostbyname("127.0.0.1");
    SOCKADDR_IN SockAddr;
    SockAddr.sin_port=htons(80);
    SockAddr.sin_family=AF_INET;
    SockAddr.sin_addr.s_addr = *((unsigned long*)host->h_addr);
    cout << "Connecting...\n";
    if(connect(Socket,(SOCKADDR*)(&SockAddr),sizeof(SockAddr)) != 0){
        cout << "Could not connect";
        system("pause");
        return 1;
    }
    cout << "Connected.\n";



          char header[]="POST /xampp/tests/file/check.php HTTP/1.1\r\n"
              "Host: 127.0.0.1\r\n"
              "Content-Type: application/x-www-form-urlencoded\r\n"
              "Content-Length: 10\r\n"
              "Connection: close\r\n"
              "\r\n"
              "text1=sase";
    send(Socket,header, strlen(header),0);
    char buffer[100000];
    int nDataLength;
    while ((nDataLength = recv(Socket,buffer,100000,0)) > 0){        
        int i = 0;
        while (buffer[i] >= 32 || buffer[i] == '\n' || buffer[i] == '\r') {
            cout << buffer[i];
            i += 1;
        }
    }
    closesocket(Socket);
        WSACleanup();
        cout<<endl<<endl;
    system("pause");
    return 0;
}

Dies ist mein Aktueller code. Es sendet text1, aber jetzt will ich es so senden Sie eine Datei (befindet sich in: C:\Users\Wade\Downloads\Documents) zusammen mit ihm. Wie mache ich das
wie sende ich eine Datei vom Benutzer an einem server unter Verwendung von HTTP POST-Protokoll

  • Wenn Sie es geschafft, einen text zu versenden, was ist stoppen Sie von der Umwandlung der Datei, um text (im binären Modus) und senden Sie es die gleiche Weise? Ich meine - Sie haben bereits getan, der schwierige Teil, jetzt ist es Zeit zu tun, die standard-Dinge - Lesen von Dateien.
  • Irgendeinem Grund Sie nicht mit libcurl, curl.haxx.se. Es ist entworfen, um zu tun genau das, was Sie wollen, und ist ein sehr robustes, ausgereiftes Produkt.
Schreibe einen Kommentar