Http.h
1 //
3 // SFML - Simple and Fast Multimedia Library
4 // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org)
5 //
6 // This software is provided 'as-is', without any express or implied warranty.
7 // In no event will the authors be held liable for any damages arising from the use of this software.
8 //
9 // Permission is granted to anyone to use this software for any purpose,
10 // including commercial applications, and to alter it and redistribute it freely,
11 // subject to the following restrictions:
12 //
13 // 1. The origin of this software must not be misrepresented;
14 // you must not claim that you wrote the original software.
15 // If you use this software in a product, an acknowledgment
16 // in the product documentation would be appreciated but is not required.
17 //
18 // 2. Altered source versions must be plainly marked as such,
19 // and must not be misrepresented as being the original software.
20 //
21 // 3. This notice may not be removed or altered from any source distribution.
22 //
24 
25 #ifndef SFML_HTTP_H
26 #define SFML_HTTP_H
27 
29 // Headers
31 #include <SFML/Network/Export.h>
32 #include <SFML/Network/Types.h>
33 #include <SFML/System/Time.h>
34 
35 
40 typedef enum
41 {
42  sfHttpGet,
43  sfHttpPost,
44  sfHttpHead,
45  sfHttpPut,
46  sfHttpDelete
47 } sfHttpMethod;
48 
49 
54 typedef enum
55 {
56  // 2xx: success
57  sfHttpOk = 200,
58  sfHttpCreated = 201,
59  sfHttpAccepted = 202,
60  sfHttpNoContent = 204,
61  sfHttpResetContent = 205,
62  sfHttpPartialContent = 206,
63 
64  // 3xx: redirection
65  sfHttpMultipleChoices = 300,
66  sfHttpMovedPermanently = 301,
67  sfHttpMovedTemporarily = 302,
68  sfHttpNotModified = 304,
69 
70  // 4xx: client error
71  sfHttpBadRequest = 400,
72  sfHttpUnauthorized = 401,
73  sfHttpForbidden = 403,
74  sfHttpNotFound = 404,
75  sfHttpRangeNotSatisfiable = 407,
76 
77  // 5xx: server error
78  sfHttpInternalServerError = 500,
79  sfHttpNotImplemented = 501,
80  sfHttpBadGateway = 502,
81  sfHttpServiceNotAvailable = 503,
82  sfHttpGatewayTimeout = 504,
83  sfHttpVersionNotSupported = 505,
84 
85  // 10xx: SFML custom codes
86  sfHttpInvalidResponse = 1000,
87  sfHttpConnectionFailed = 1001
88 } sfHttpStatus;
89 
90 
97 CSFML_NETWORK_API sfHttpRequest* sfHttpRequest_create(void);
98 
105 CSFML_NETWORK_API void sfHttpRequest_destroy(sfHttpRequest* httpRequest);
106 
121 CSFML_NETWORK_API void sfHttpRequest_setField(sfHttpRequest* httpRequest, const char* field, const char* value);
122 
134 CSFML_NETWORK_API void sfHttpRequest_setMethod(sfHttpRequest* httpRequest, sfHttpMethod method);
135 
147 CSFML_NETWORK_API void sfHttpRequest_setUri(sfHttpRequest* httpRequest, const char* uri);
148 
159 CSFML_NETWORK_API void sfHttpRequest_setHttpVersion(sfHttpRequest* httpRequest, unsigned int major, unsigned int minor);
160 
172 CSFML_NETWORK_API void sfHttpRequest_setBody(sfHttpRequest* httpRequest, const char* body);
173 
180 CSFML_NETWORK_API void sfHttpResponse_destroy(sfHttpResponse* httpResponse);
181 
195 CSFML_NETWORK_API const char* sfHttpResponse_getField(const sfHttpResponse* httpResponse, const char* field);
196 
210 CSFML_NETWORK_API sfHttpStatus sfHttpResponse_getStatus(const sfHttpResponse* httpResponse);
211 
220 CSFML_NETWORK_API unsigned int sfHttpResponse_getMajorVersion(const sfHttpResponse* httpResponse);
221 
230 CSFML_NETWORK_API unsigned int sfHttpResponse_getMinorVersion(const sfHttpResponse* httpResponse);
231 
246 CSFML_NETWORK_API const char* sfHttpResponse_getBody(const sfHttpResponse* httpResponse);
247 
254 CSFML_NETWORK_API sfHttp* sfHttp_create(void);
255 
262 CSFML_NETWORK_API void sfHttp_destroy(sfHttp* http);
263 
280 CSFML_NETWORK_API void sfHttp_setHost(sfHttp* http, const char* host, unsigned short port);
281 
301 CSFML_NETWORK_API sfHttpResponse* sfHttp_sendRequest(sfHttp* http, const sfHttpRequest* request, sfTime timeout);
302 
303 
304 #endif // SFML_HTTP_H
sfTime
Represents a time value.
Definition: Time.h:39