hochladen Ich versuche, ein Bild auf Remote-Webserver hochladen. Ich habe HTMLForm und FilePartSource verwendet. Ich bin in der Lage, Image auf lokalen Server (d. H. Loclhost) erfolgreich zu laden, aber wenn ich versuche, es auf Remote-Server hochladen, ist die Antwort von Remote-Webserver "411 Länge erforderlich". Ich habe versucht, request.setContentLength (sizeofimagefile) aber immer noch das gleiche Problem zu setzen. Kann mir jemand sagen, was das Problem ist oder. Hier ist mein Code.POCO: Wie Bild auf Webser mit Poco in C++
HTMLForm htmlform;
htmlform.set("aaaaaa", "bbbbbbb");
htmlform.set("cccccc", "ddddddd");
htmlform.setEncoding(HTMLForm::ENCODING_MULTIPART);
PartSource * pFileSrc = new FilePartSource("filename", "application/octet-stream");
std::istream& mystream = pFileSrc->stream();
mystream.seekg(0, std::ios::end);
int uiLength = mystream.tellg();
htmlform.addPart("file", pFileSrc);
URI uri("yyy");
HTTPClientSession session(uri.getHost(), uri.getPort());
HTTPRequest post_req(Poco::Net::HTTPRequest::HTTP_POST,"xxx",HTTPMessage::HTTP_1_1);
post_req.setKeepAlive(true);
htmlform.prepareSubmit(post_req);
std::ostream& oustr = session.sendRequest(post_req);
htmlform.write(oustr);
HTTPResponse res;
std::istream& rs = session.receiveResponse(res);
std::cerr << rs.rdbuf();
Vielen Dank im Voraus
in setContentLength (sizeofimagefile), Haben Sie die Größe der Parameter "aaaaaa" und "cccccc", die Sie mit Ihrem Bild im Request dataBlock senden, eingeschlossen? Wenn Sie die POST-Methode für Ihr Formular verwenden, werden diese Parameter an denselben Datenblock gesendet wie das Bild, das Sie hochladen möchten. –