Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

25.03.2012, 16:08

SFML Network NonCopyable Problem

Hallo
Ich möchte den Quelltext eine Website über SFML bekommen. Dazu habe ich folgende Klasse geschrieben:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <SFML/Network.hpp>
#include <iostream>
class Website {
    private:
    sf::Http Http;
    sf::Http::Request Request;
    sf::Http::Response Page;
    public:
    Website(std::string sHost);
    ~Website() {};
    std::string Get(std::string sURI);
};

Website::Website(std::string sHost) {
    Http = sf::Http();
    Request = sf::Http:Request();
    Response = sf::Http:Response();
    Request.SetMethod(sf::Http::Request::Get);
    Request.SetHttpVersion(1, 0);
    Http.SetHost(sHost);
}

std::string Website::Get(std::string sURI) {
    Request.SetURI(sURI);
    Request.SetBody("");

    Page = Http.SendRequest(Request);

    //Page.GetField("Location")
    return Page.GetBody();
    return "";
}

Nur leider kommt folgender Fehler:

Quellcode

1
Fehler: »sf::NonCopyable& sf::NonCopyable::operator=(const sf::NonCopyable&)« ist priva

Ich hoffe ihr könnt mir weitehelfen. :thumbsup:
MfG

Greek

Frischling

Beiträge: 18

Wohnort: Nähe Darmstadt

Beruf: Informatik-Student

  • Private Nachricht senden

2

26.03.2012, 20:50

Hi,



du schreibst:



private:



sf::Http Http;



und dann schreibst du es im Konstruktor nochmal :huh: Was willst du eigentlich mit den 2 Return hintereinander? Der Code ist sehr seltsam, ich würde so ungefähr machen:



Client.h :



C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#ifndef CLIENT_H
#define CLIENT_H

#include <SFML/Network.hpp>
#include <string>
#include <iostream>


class Client {
public:
    Client(const std::string &host);
    const std::string request(const std::string &yourRequest);
    
private:
    sf::Http m_http;
};

#endif








Client.cpp



C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "Client.h"

Client::Client(const std::string &host)  {
    m_http.SetHost(host);
}

const std::string Client::request(const std::string &yourRequest) {
    sf::Http::Request request(yourRequest); // Rest defaut GET etc.
    
    sf::Http::Response response = m_http.SendRequest(request);
    
    sf::Http::Response::Status status = response.GetStatus();
    if (status == sf::Http::Response::Ok)
    {
        return response.GetBody();
    }
    else
    {
        return "Error";
    }
}




main.cpp



C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include "Client.h"


int main ()
{
    Client WebseitenGetter("http://www.sfml-dev.org");
    
    std::cout << WebseitenGetter.request("features.php") << std::endl;
    
    
    return  EXIT_SUCCESS;
}

Gruß Greek

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Greek« (26.03.2012, 20:58)