123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- #ifndef _HTTPGET_H_
- #define _HTTPGET_H_
- #include "connection.h"
- #include "asyncdns.h"
- #include "jnetlib_defines.h"
- #ifdef _WIN32
- #include "minizip/unzip.h"
- #else
- #include <zlib.h>
- #endif
- #include "nswasabi/ReferenceCounted.h"
- class JNL_HTTPGet : public ReferenceCountedBase<JNL_HTTPGet>
- {
- public:
- JNL_HTTPGet(size_t recvbufsize=PACKET_SIZE, size_t sendbufsize=0);
- ~JNL_HTTPGet();
- void set_sendbufsize( size_t sendbufsize = PACKET_SIZE );
- int set_recv_buffer_size(size_t new_buffer_size);
- void addheader(const char *header);
- void addheadervalue(const char *header, const char *value);
- void connect(const char *url, int ver=0, const char *requestmethod="GET");
- int run();
- int get_status();
-
- const char *getallheaders();
- const char *getheader(const char *headername);
- const char *getreply() { return m_reply; }
- int getreplycode();
- const char *geterrorstr() { return m_errstr;}
- size_t bytes_available();
- size_t get_bytes(char *buf, size_t len);
- size_t peek_bytes(char *buf, size_t len);
- uint64_t content_length();
- JNL_Connection *get_con() { return m_con; }
- void AllowCompression();
- void reset_headers();
- void set_dns(JNL_AsyncDNS *dns);
- const char *get_url() { return m_http_url; }
- void set_accept_all_reply_codes();
- void set_persistent();
- static void set_proxy(const char *proxy);
- protected:
- static char *get_proxy();
- void reinit();
- void deinit(bool full=true);
- void seterrstr(const char *str);
- void do_parse_url(const char *url, char **host, unsigned short*port, char **req, char **lp);
- void do_encode_mimestr(char *in, char *out);
- JNL_AsyncDNS *m_dns;
- JNL_Connection *m_con;
- size_t m_recvbufsize;
- int m_http_state;
- unsigned short m_http_port;
- char *m_http_url;
- char *m_http_host;
- char *m_http_lpinfo;
- char *m_http_request;
- char *m_http_proxylpinfo;
- char *m_http_proxyhost;
- unsigned short m_http_proxyport;
- char *m_sendheaders;
- char *m_recvheaders;
- size_t m_recvheaders_size;
- char *m_reply;
- char *m_errstr;
- bool allowCompression;
- size_t m_sendbufsize;
-
- z_stream *zlibStream;
- bool accept_all_reply_codes;
- bool persistent;
- static char *g_proxy;
- };
- #endif
|