POST-запрос на tcp неблокирующем сервере в C ++ - PullRequest
0 голосов
/ 29 января 2020

У меня есть эта функция для работы с POST-запросами клиентов:

ostringstream postRequest(int index, vector<string>parsed, int* statusCode, string* content)
{
    string fileName = parsed[1];
    if (fileName == "/")
    {
        fileName = "/index.html";
    }

    string tmpString(sockets[index].buffer);
    int position = tmpString.find("<");
    *content = tmpString.substr(position);
    ostringstream oStrSVar;
    ifstream f(".\\files" + fileName);
    // Check if file opened
    if (f.good())
    {
        *statusCode = 204;
        oStrSVar << "HTTP/1.1 " << *statusCode << " No Content\r\n";
    }
    else
    {
        *statusCode = 201;
        oStrSVar << "HTTP/1.1 " << *statusCode << " Created\r\n";
        oStrSVar << "Content-Location: files" + fileName << "\r\n";

    }
    f.close();

    //Writing the new content to file
    ofstream myfile;
    myfile.open(".\\files" + fileName);
    myfile << *content;
    myfile.close();

    return oStrSVar;


}

Проблема в том, что, когда я пытаюсь найти код, я получаю ошибку во время выполнения. Я добавил несколько отпечатков, чтобы проверить, где находится ошибка, и вот эта строка:

*content = tmpString.substr(position);

Я отправляю свой запрос почтальону следующим образом: enter image description here Я не могу понять, почему мой код не работает, и я буду очень признателен за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...