Skip to content
This repository has been archived by the owner on Dec 21, 2018. It is now read-only.

Commit

Permalink
Support for specifying request body encoding for WebPage::openUrl
Browse files Browse the repository at this point in the history
doesn't break existing functionality and currently supports only
"utf-8" and "utf8" encodings

Fixes http://code.google.com/p/phantomjs/issues/detail?id=1043
  • Loading branch information
MaxDesiatov authored and vitallium committed May 28, 2013
1 parent 435f761 commit 521f7a4
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions src/webpage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -784,10 +784,13 @@ void WebPage::openUrl(const QString &address, const QVariant &op, const QVariant
operation = op.toString();

if (op.type() == QVariant::Map) {
operation = op.toMap().value("operation").toString();
body = op.toMap().value("data").toByteArray();
if (op.toMap().contains("headers")) {
QMapIterator<QString, QVariant> i(op.toMap().value("headers").toMap());
QVariantMap settingsMap = op.toMap();
operation = settingsMap.value("operation").toString();
QString bodyString = settingsMap.value("data").toString();
QString encoding = settingsMap.value("encoding").toString().toLower();
body = encoding == "utf-8" || encoding == "utf8" ? bodyString.toUtf8() : bodyString.toAscii();
if (settingsMap.contains("headers")) {
QMapIterator<QString, QVariant> i(settingsMap.value("headers").toMap());
while (i.hasNext()) {
i.next();
request.setRawHeader(i.key().toUtf8(), i.value().toString().toUtf8());
Expand Down

0 comments on commit 521f7a4

Please sign in to comment.