1

リクエストを行う次のコードがあります。

void HTTPClient::post(QString connectionString, QHttpMultiPart* _multiPart, bool returnProgress) {
    QUrl url;
    if (ssl)
        url.setScheme("https");
    else
        url.setScheme("http");
    url.setHost(host);
    url.setPort(port);
    url.setPath(connectionString);
    url.setUrl(url.toEncoded());
    QNetworkRequest request(url);
    request.setRawHeader("User-Agent", QCoreApplication::applicationName().toLatin1());

    /*...irrelevant code...*/
}

要求された URL は

https://somewebpage.domain:443/REST/login.php?method=login_md5

しかし、URLをエンコード済みとして設定したにもかかわらず、QNetworkRequestはこれを要求します(url.toEncoded()のデバッグは「?」を正しく出力します):

https://somewebpage.domain:443/REST/login.php%3Fmethod=login_md5

これにより、404 not found ページが表示されます。url.toString() と url だけで URL を設定しようとしましたが、「?」混乱し続けます。リンクを適切にリクエストするにはどうすればよいですか?

次のように、コンストラクターで QUrl を構築しようとしました。

QUrl url("https://"+ホスト+ポート+接続文字列);

しかし、結果は次の文字列になります。

https://somewebpage.xn--domain-efa/REST/login.php?method=login_md5

4

3 に答える 3

0

エンコードされた URL は有効なようです。おそらく Web サーバーに問題がありますか?

于 2014-05-29T09:42:54.900 に答える