Bonjour,

je rencontre un petit soucis de conception de mon application.

Je suis en train de faire une classe qui exécute des requêtes HTTPS/HTTP avec la librairie réseau Poco::Net.

Mon soucis est le suivant, lorsque l'on exécute une requête, les paramètres du header et le body sont dans deux éléments distincts :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
// istream = body		res = header.
std::istream& rs =  m_session.get()->receiveResponse(res);
 
// On peut certainement mieux faire si vous avez une idée..
uint32_t len;
rs.read((char*)& len, 2);
std::string test(len, '\0');
rs.read(&test[0],len);
J'aimerai avoir un objet qui contient à la fois le header et le body et le retourner lorsque l'on effectue une requête, voila la signature :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ResponseHTTP sendHttpsRequest();
Seulement voila le Poco::Net::HTTPResponse déclare le copie en privé :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private:
	enum Limits
	{
		MAX_VERSION_LENGTH = 8,
		MAX_STATUS_LENGTH  = 3,
		MAX_REASON_LENGTH  = 512
	};
 
	HTTPStatus  _status;
	std::string _reason;
 
	HTTPResponse(const HTTPResponse&);
	HTTPResponse& operator = (const HTTPResponse&);
};
Comment faire cela proprement ? (Il est toujours possible de copier tous les champs de la httpResponse, mais je pense qu'il doit exister mieux).

Merci de votre aide.