user502814
user502814

Reputation: 79

Whats the problem with my code (http post)

i am developing a simple application which uploads image to yfrog.com.(These images will be reflected in twitter account). Here is my code. but it is not working. I am not getting response from server.

QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QNetworkRequest request(QUrl("http://yfrog.com/api/uploadAndPost"));

QByteArray data;
QUrl params,params1;
QFile file("some image path");
QString boundary("-----abcde12345");
QString body = "\r\n--" + boundary + "\r\n";

params.addQueryItem("username",twitterusername);
params.addQueryItem("password",twitterpassword);
params.addQueryItem("message",some message...);
params.addQueryItem("key",mydeveloperkey);


data.append(body);
data.append(params.toString());
QByteArray ba;
ba=file.readAll();
QString body1(ba);
params1.addQueryItem("media",body1);
data.append(params1.toString());
data.append(body);


request.setRawHeader("Content-Type","multipart/form-data; boundary=-----abcde12345");
request.setHeader(QNetworkRequest::ContentLengthHe ader,data.size());

QNetworkReply *reply = manager->post(request,data);

reply->waitForReadyRead(-1);
qDebug() << "replay :"<<reply->readAll();

If i checked the requested TCP packets from wireshark, it is giving a error message like 'malformed packets'.

For reference : http://code.google.com/p/imageshacka...GuploadAndPost

Please any body help regarding this. Where i am doing wrong?

Upvotes: -1

Views: 641

Answers (1)

Vicken Simonian
Vicken Simonian

Reputation: 411

QNetworkReply::waitForReadyRead does not have an implementation so it always refers the base class waitForReadyRead() (in this case QIODevice). In the base class, you will see that waitForReadyRead always returns FALSE.

From the docs, you would have to instead use the readRead() signal in QNetworkReply and read the data when the slot is called.

 QNetworkReply *reply = manager->get(request);
 connect(reply, SIGNAL(readyRead()), this, SLOT(slotReadyRead()));

Upvotes: 0

Related Questions