17 #ifndef hifi_XMLHttpRequestClass_h
18 #define hifi_XMLHttpRequestClass_h
21 #include <QNetworkReply>
22 #include <QNetworkRequest>
26 #include "ScriptEngine.h"
27 #include "ScriptValue.h"
163 Q_PROPERTY(
ScriptValue responseText READ getResponseText)
164 Q_PROPERTY(QString responseType READ getResponseType WRITE setResponseType)
166 Q_PROPERTY(QString statusText READ getStatusText)
167 Q_PROPERTY(
ScriptValue readyState READ getReadyState)
169 Q_PROPERTY(
int timeout READ getTimeout WRITE setTimeout)
171 Q_PROPERTY(
int UNSENT READ getUnsent)
172 Q_PROPERTY(
int OPENED READ getOpened)
173 Q_PROPERTY(
int HEADERS_RECEIVED READ getHeadersReceived)
174 Q_PROPERTY(
int LOADING READ getLoading)
175 Q_PROPERTY(
int DONE READ getDone)
178 Q_PROPERTY(
ScriptValue ontimeout READ getOnTimeout WRITE setOnTimeout)
179 Q_PROPERTY(
ScriptValue onreadystatechange READ getOnReadyStateChange WRITE setOnReadyStateChange)
184 static const int MAXIMUM_REDIRECTS = 5;
213 int getUnsent()
const {
return UNSENT; };
214 int getOpened()
const {
return OPENED; };
215 int getHeadersReceived()
const {
return HEADERS_RECEIVED; };
216 int getLoading()
const {
return LOADING; };
217 int getDone()
const {
return DONE; };
221 int getTimeout()
const {
return _timeout; }
222 void setTimeout(
int timeout) { _timeout = timeout; }
223 ScriptValue getResponse()
const {
return _responseData; }
224 ScriptValue getResponseText()
const {
return _engine->newValue(QString(_rawResponseData.data())); }
225 QString getResponseType()
const {
return _responseType; }
226 void setResponseType(
const QString& responseType) { _responseType = responseType; }
227 ScriptValue getReadyState()
const {
return _engine->newValue(_readyState); }
228 ScriptValue getError()
const {
return _engine->newValue(_errorCode); }
230 QString getStatusText()
const;
232 ScriptValue getOnTimeout()
const {
return _onTimeout; }
233 void setOnTimeout(
const ScriptValue&
function) { _onTimeout =
function; }
234 ScriptValue getOnReadyStateChange()
const {
return _onReadyStateChange; }
235 void setOnReadyStateChange(
const ScriptValue&
function) { _onReadyStateChange =
function; }
252 void setRequestHeader(
const QString& name,
const QString& value);
265 void open(
const QString& method,
const QString& url,
bool async =
true,
const QString& username =
"",
266 const QString& password =
"");
289 ScriptValue getResponseHeader(
const QString& name)
const;
298 void requestComplete();
301 void setReadyState(ReadyState readyState);
303 void connectToReply(QNetworkReply* reply);
304 void disconnectFromReply(QNetworkReply* reply);
308 bool _async {
true };
311 QString _responseType;
312 QNetworkRequest _request;
313 QNetworkReply* _reply {
nullptr };
314 QByteArray _sendData;
315 QByteArray _rawResponseData;
319 ReadyState _readyState { XMLHttpRequestClass::UNSENT };
370 QNetworkReply::NetworkError _errorCode { QNetworkReply::NoError };
374 int _numRedirects { 0 };
377 void requestFinished();
378 void requestError(QNetworkReply::NetworkError code);
379 void requestMetaDataChanged();
380 void requestDownloadProgress(qint64 bytesReceived, qint64 bytesTotal);
381 void requestTimeout();
[ScriptInterface] Provides an engine-independent interface for QScriptContext
Definition: ScriptContext.h:55
Provides an engine-independent interface for a scripting engine.
Definition: ScriptEngine.h:93
[ScriptInterface] Provides an engine-independent interface for QScriptValue
Definition: ScriptValue.h:40
Provides the XMLHttpRequest scripting interface.
Definition: XMLHttpRequestClass.h:160