1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- #include "private/qhttpclientrequest_private.hpp"
- #include "qhttpclient.hpp"
- ///////////////////////////////////////////////////////////////////////////////
- namespace qhttp {
- namespace client {
- ///////////////////////////////////////////////////////////////////////////////
- QHttpRequest::QHttpRequest(QHttpClient* cli)
- : QHttpAbstractOutput(cli) , d_ptr(new QHttpRequestPrivate(cli, this)) {
- d_ptr->initialize();
- QHTTP_LINE_LOG
- }
- QHttpRequest::QHttpRequest(QHttpRequestPrivate& dd, QHttpClient* cli)
- : QHttpAbstractOutput(cli) , d_ptr(&dd) {
- d_ptr->initialize();
- QHTTP_LINE_LOG
- }
- QHttpRequest::~QHttpRequest() {
- QHTTP_LINE_LOG
- }
- void
- QHttpRequest::setVersion(const QString &versionString) {
- d_func()->iversion = versionString;
- }
- void
- QHttpRequest::addHeader(const QByteArray &field, const QByteArray &value) {
- d_func()->addHeader(field, value);
- }
- THeaderHash&
- QHttpRequest::headers() {
- return d_func()->iheaders;
- }
- void
- QHttpRequest::write(const QByteArray &data) {
- d_func()->writeData(data);
- }
- void
- QHttpRequest::end(const QByteArray &data) {
- Q_D(QHttpRequest);
- if ( d->endPacket(data) )
- emit done(!d->ikeepAlive);
- }
- QHttpClient*
- QHttpRequest::connection() const {
- return d_func()->iclient;
- }
- ///////////////////////////////////////////////////////////////////////////////
- QByteArray
- QHttpRequestPrivate::makeTitle() {
- QByteArray title;
- title.reserve(512);
- title.append(qhttp::Stringify::toString(imethod))
- .append(" ");
- QByteArray path = iurl.path(QUrl::FullyEncoded).toLatin1();
- if ( path.size() == 0 )
- path = "/";
- title.append(path);
- if ( iurl.hasQuery() )
- title.append("?").append(iurl.query(QUrl::FullyEncoded).toLatin1());
- title.append(" HTTP/")
- .append(iversion.toLatin1())
- .append("\r\n");
- return title;
- }
- void
- QHttpRequestPrivate::prepareHeadersToWrite() {
- if ( !iheaders.contains("host") ) {
- quint16 port = iurl.port();
- if ( port == 0 )
- port = 80;
- iheaders.insert("host",
- QString("%1:%2").arg(iurl.host()).arg(port).toLatin1()
- );
- }
- }
- ///////////////////////////////////////////////////////////////////////////////
- } // namespace client
- } // namespace qhttp
- ///////////////////////////////////////////////////////////////////////////////
|