void Core::requestFriendship(const ToxId& friendId, const QString& message) { ToxPk friendPk = friendId.getPublicKey(); QString errorMessage = getFriendRequestErrorMessage(friendId, message); if (!errorMessage.isNull()) { emit failedToAddFriend(friendPk, errorMessage); profile.saveToxSave(); } ToxString cMessage(message); uint32_t friendNumber = tox_friend_add(tox, friendId.getBytes(), cMessage.data(), cMessage.size(), nullptr); if (friendNumber == std::numeric_limits<uint32_t>::max()) { qDebug() << "Failed to request friendship"; emit failedToAddFriend(friendPk); } else { qDebug() << "Requested friendship of " << friendNumber; Settings::getInstance().updateFriendAddress(friendId.toString()); emit friendAdded(friendNumber, friendPk); emit requestSent(friendPk, message); } profile.saveToxSave(); }
void HttpRequestv2::sendRequest() { Utilities::logData("HttpRequest(): Sending request..."); // Send the request QByteArray *request = new QByteArray(); request->append((method == GET) ? "GET" : "POST"); request->append(' '); request->append(url.encodedPath()); if (method == GET) request->append("?" + url.encodedQuery()); request->append(" HTTP/1.1\r\n"); request->append("Host: " + url.encodedHost() + "\r\n"); // Add all the headers QList<QString> keys = headers.keys(); foreach (QString key, keys) request->append(key.toUtf8() + ": " + headers.value(key).toUtf8() + "\r\n"); if (method == POST) request->append("Content-Length: " + QString::number(length) + "\r\n"); request->append("\r\n"); if (method == POST) request->append(data,length); // Write data connect(socket, SIGNAL(encryptedBytesWritten(qint64)), this, SLOT(encryptedBytesWritten(qint64))); bytesWritten = 0; qint64 length = request->size(); qint64 pos = 0; const char *constData = request->constData(); while (pos < length) { int size = ((pos + MAX_BUFFER) < length ? MAX_BUFFER : length-pos); socket->write(constData, size); constData += size; pos += size; } delete request; emit requestSent(length); Utilities::logData("HttpRequest(): Waiting for response..."); connect(socket,SIGNAL(readyRead()),this,SLOT(readResponse())); }
void MediaUpload::uploadMedia() { QList<FormData*> formData; FormDataString *str = new FormDataString(); str->name = "from"; str->content = Client::myJid; formData.append(str); FormDataString *str2 = new FormDataString(); str2->name = "to"; str2->content = msg.remote_resource; formData.append(str2); FormDataFile *file = new FormDataFile(); file->name = "file"; file->fileName = msg.media_name; file->uri = msg.local_file_uri; file->contentType = msg.media_mime_type; formData.append(file); MultiPartUploader *uploader = new MultiPartUploader(this); connect(uploader,SIGNAL(finished(MultiPartUploader*,QVariantMap)), this,SLOT(finished(MultiPartUploader*,QVariantMap))); connect(uploader,SIGNAL(socketError(QAbstractSocket::SocketError)), this,SLOT(errorHandler(QAbstractSocket::SocketError))); connect(uploader,SIGNAL(progress(float)), this,SLOT(updateProgress(float))); connect(uploader,SIGNAL(headersReceived(qint64)), this,SLOT(headersReceivedHandler(qint64))); connect(uploader,SIGNAL(requestSent(qint64)), this,SLOT(requestSentHandler(qint64))); // uploader->open("https://mms.whatsapp.net/client/iphone/upload.php", formData); uploader->open(msg.media_url, formData); }
void HttpRequestv2::workerFinished() { emit requestSent(length); }
void KviHttpRequest::slotSocketConnected() { if(m_p->pConnectTimeoutTimer) { delete m_p->pConnectTimeoutTimer; m_p->pConnectTimeoutTimer = NULL; } emit connectionEstabilished(); emit status( __tr2qs("Connected to %1:%2: sending request") .arg(m_p->pSocket->peerAddress().toString()) .arg(m_p->pSocket->peerPort()) ); KviCString szMethod; bool bIsPost = false; if(m_eProcessingType == HeadersOnly) szMethod = "HEAD"; else if(m_szPostData.isEmpty()) szMethod = "GET"; else { szMethod = "POST"; bIsPost = true; } KviCString szRequest( KviCString::Format, "%s %s HTTP/1.1\r\n" \ "Host: %s\r\n" \ "Connection: Close\r\n" \ "User-Agent: KVIrc-http-slave/1.0.0\r\n" \ "Accept: */*\r\n", szMethod.ptr(), m_connectionUrl.path().toUtf8().data(), m_connectionUrl.host().toUtf8().data() ); if(m_uContentOffset > 0) szRequest.append(KviCString::Format,"Range: bytes=%u-\r\n",m_uContentOffset); if(bIsPost) { szRequest.append(KviCString::Format,"Content-Type: application/x-www-form-urlencoded\r\n" \ "Content-Length: %u\r\n" \ "Cache-control: no-cache\r\n" \ "Pragma: no-cache\r\n",m_szPostData.length()); } szRequest += "\r\n"; if(bIsPost) { if(!m_szPostData.isEmpty()) szRequest.append(m_szPostData); szRequest += "\r\n"; } // FIXME: Handle this better! int written = m_p->pSocket->write(szRequest.ptr(),szRequest.len()); if(written < szRequest.len()) { m_szLastError = __tr2qs("Socket write error"); resetInternalStatus(); emit terminated(false); } // FIXME: Handle this better QString req = QString::fromLatin1(szRequest.ptr()); QStringList sl = req.split("\r\n"); emit requestSent(sl); // now wait for the response // FIXME: Handle read timeouts! }
void MediaUpload::requestSentHandler(qint64 bytes) { emit requestSent(bytes); }