0

特定のアーティストに関する xml データを取得しています。私が使っているのはboost::iostreams:

 boost::asio::ip::tcp::iostream stream;
    stream.connect("www.musicbrainz.org", "http");
    stream << "GET /ws/2/artist/?query=artist:madonna HTTP/1.1\r\n";
    stream << "Host: www.musicbrainz.org\r\n";
    stream << "Accept: */*\r\n";
    stream << "Connection: close\r\n\r\n";
    stream.flush();

    std::cout << stream.rdbuf() << std::endl; 

これはうまくいきます。アーティスト「マドンナ」に関する xml データを取得しています。しかし、このコードをアーティスト名をパラメーターとして持つメソッドに入れたいので、これを試しました:

static void FetchArtistInfo(std::string artist)
{   
    boost::asio::ip::tcp::iostream stream;
    stream.connect("www.musicbrainz.org", "http");
    stream << "GET /ws/2/artist/?query=artist:";
    stream << artist;
    stream << " ";
    stream << "HTTP/1.1\r\n";
    //stream << url;
    stream << "Host: www.musicbrainz.org\r\n";
    stream << "Accept: */*\r\n";
    stream << "Connection: close\r\n\r\n";
    stream.flush();

    std::cout << stream.rdbuf() << std::endl;
}

しかし、そのようにストリームを書き込んでもデータは取得されません。私は常に「禁止された」xml ファイルを取得します。

文字列パラメーターで指定されたアーティストに対して機能するようにストリームを構築する方法はありますか?

4

0 に答える 0