[Qt-users:662] Qt5でmastodonのRestAPIを呼び出しJSONを取得する方法について

宮本雄樹 yumiya0403two @ gmail.com
2017年 4月 26日 (水) 18:58:49 JST


初めまして、宮本雄樹と申します。
TeratailにてQtに関する質問をしたところ、
メーリングリストで質問してはどうかとアドバイスされた次第です。
このようなメーリングリストを使うのは初めてなので勝手が良く分かりませんが、
今後ともよろしくお願いいたします。

さて、本題なのですが、私は今Qt5で簡易的なmastodonクライアントを作ろうと思っています。
そこでmastodonのRestAPIを呼び出すコードを以下のように書いたのですが、
実行すると次のような結果が返ってきます。
リダイレクトがうまくできていないようなのですが、ヘッダーに移動先のURLもありません。
httpsなのでSSL関連を疑っているのですが、
Qtでhttpsをうまく処理することは可能なのでしょうか?
一通り調べたところQtはSSLに対応しておらず外部ライブラリを使うようなことが書いてあったのですが、
その通りなのでしょうか?

Qtは最近始めたばかりで右も左も分からない状況です。
アドバイス頂けないでしょうか?

[コード]
#include "mainwindow.h"

#include "ui_mainwindow.h"


#include <QTcpSocket>

#include <QUrl>


MainWindow::MainWindow(QWidget *parent) :

    QMainWindow(parent),

    ui(new Ui::MainWindow)

{

    ui->setupUi(this);


    QTcpSocket socket;

    QUrl url("https://mstdn.jp/api/v1/timelines/public");

    QString hostName = "mstdn.jp";

    socket.connectToHost(hostName, 80);

    socket.write("GET " + url.toEncoded(QUrl::RemoveScheme |
QUrl::RemoveAuthority) + " HTTP/1.1\r\nHost: " + hostName.toUtf8() +
"\r\n\r\n");

    socket.waitForReadyRead(1000000);

    QString data = QString(socket.readAll());

    ui->textEdit->setText(data);

    socket.close();

}


MainWindow::~MainWindow()

{

    delete ui;

}


[結果]
HTTP/1.1 301 Moved Permanently

Date: Wed, 26 Apr 2017 09:53:29 GMT

Content-Type: text/html

Transfer-Encoding: chunked

Connection: keep-alive

Set-Cookie: __cfduid=d876325d0b88d8b09e238204d873fdc201493200409;
expires=Thu, 26-Apr-18 09:53:29 GMT; path=/; domain=.mstdn.jp; HttpOnly

Location: https://mstdn.jp/api/v1/timelines/public

Server: cloudflare-nginx

CF-RAY: 3558a7bef61c133b-NRT


b2

<html>

<head><title>301 Moved Permanently</title></head>

<body bgcolor="white">

<center><h1>301 Moved Permanently</h1></center>

<hr><center>nginx</center>

</body>

</html>


0
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://qt-users.jp/pipermail/qt-users/attachments/20170426/7e2e72a5/attachment-0001.html>


Qt-users メーリングリストの案内