1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
#ifndef WEB_REQUEST_INCLUDED
#define WEB_REQUEST_INCLUDED
#include "minorGems/network/Socket.h"
#include "minorGems/network/HostAddress.h"
#include "minorGems/network/LookupThread.h"
#include "BringNetworkUpThread.h"
// a non-blocking web request
class WebRequest {
public:
// inMethod = GET, POST, etc.
// inURL the url to retrieve
// inBody the body of the request, can be NULL
// request body must be in application/x-www-form-urlencoded format
WebRequest( char *inMethod, char *inURL,
char *inBody );
// if request is not complete, destruction cancels it
~WebRequest();
// take anoter non-blocking step
// return 1 if request complete
// return -1 if request hit an error
// return 0 if request still in-progress
int step();
// gets the response body as a \0-terminated string
char *getResult();
protected:
char mError;
char *mURL;
char *mRequest;
int mRequestPosition;
SimpleVector<char> mResponse;
char mResultReady;
char *mResult;
HostAddress *mSuppliedAddress;
HostAddress *mNumericalAddress;
BringNetworkUpThread *mNetworkUpThread;
LookupThread *mLookupThread;
Socket *mSock;
};
#endif
|