我正在使用c ++ windows forms curl为具有网络的机器人开发应用程序我想从文本字段发送文本,但是当我将它简单地添加到请求(代码中的注释行)时,应用程序在请求时崩溃。
问题:如何转换字符以添加到查询中?
private: std::string ToStringUS(String^ T)
{
string url = "";
marshal_context ^ context = gcnew marshal_context();
const char* str55554 = context->marshal_as<const char*>(T);
url += str55554;
delete context;
return url;
}
string url = "http://";
url += ToStringUS(this->textBox1->Text);
url += "?dat=";
//url += ToStringUS(this->richTextBox1->Text);
this->richTextBox1->Text =gcnew String(URLget(url).c_str());
private: string URLget(string url)
{
//string url = "http://";
buffer = "";
//необходимые CURL объекты
CURLcode result;
//проверяем результат инициализации
if (curl)
{
//задаем все необходимые опции
//определяем, куда выводить ошибки
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errorBuffer);
//указываем прокси сервер
//curl_easy_setopt(curl, CURLOPT_PROXY, "proxy:8080");
//задаем опцию отображение заголовка страницы
curl_easy_setopt(curl, CURLOPT_HEADER, 0);
//указываем функцию обратного вызова для записи получаемых данных
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
//указываем куда записывать принимаемые данные
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer);
//задаем опцию - получить страницу по адресу http://google.com
curl_easy_setopt(curl, CURLOPT_URL,url);
//запускаем выполнение задачи
result = curl_easy_perform(curl);
//проверяем успешность выполнения операции
if (result == CURLE_OK)
{
return buffer;
}
else
{
return "нет доступа к серверу";
}
//выводим полученные данные на стандартный вывод (консоль)
//else
//выводим сообщение об ошибке
//text<< "Ошибка! " << errorBuffer << endl;
}
else
return "ошыбка curl";
}
来源:https ://stackoverflow.com/a/4550600/4928642
PS:
gcnew String(URLget(url).c_str())
-马马虎虎的想法,可能......