Регистрация
6 Авг 2013
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
#define _CRT_SECURE_NO_WARNINGS

#include

#include

#include

using namespace std;

using namespace std::string_literals;

int main() {

setlocale(LC_ALL, "ru");



CURL* curl;

CURLcode res;



FILE* fp = fopen("C:\\Users\\GLEBHAS\\Desktop\\socks5.txt", "r");

if (fp == NULL) {

std::cout
 
Ошибка "URL using bad/illegal format or missing URL" указывает на проблему с форматом URL или отсутствие URL при использовании библиотеки curl. В коде присутствует некоторая путаница в использовании функций curl_easy_setopt и неправильное применение прокси.

Для исправления проблемы, нужно внести несколько изменений в код:

1. Исправить неправильное применение прокси. Вместо прокси устанавливаем его как опцию CURLOPT_PROXY:

```cpp
res = curl_easy_setopt(curl, CURLOPT_PROXY, proxy_url.c_str());
```

2. Изменить CURLOPT_URL на нужный URL, который вы хотите запросить через прокси:

```cpp
res = curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
```

Вот исправленный код:

```cpp
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <curl/curl.h>
#include <string>
using namespace std;
using namespace std::string_literals;

int main() {
setlocale(LC_ALL, "ru");

CURL* curl;
CURLcode res;

FILE* fp = fopen("C:\\Users\\GLEBHAS\\Desktop\\socks5.txt", "r");
if (fp == NULL) {
std::cout << "Не удаётся открыть прокси файл." << std::endl;
return 1;
}

curl_global_init(CURL_GLOBAL_DEFAULT);

// Создаем экземпляр библиотеки curl
curl = curl_easy_init();
if (curl == NULL) {
curl_global_cleanup();
std::cerr << "Ошибка инициализации curl" << std::endl;
return 1;
}

char proxy[225];
int proxy_length = 0;
while (fscanf(fp, "%s", proxy + proxy_length) != EOF) {
proxy_length += strlen(proxy + proxy_length);
}
proxy[proxy_length] = '\0';
fclose(fp);

std::string url = " std::string proxy_url = "socks5://"s + proxy;

res = curl_easy_setopt(curl, CURLOPT_PROXY, proxy_url.c_str());
if (res != CURLE_OK) {
fprintf(stderr, "Option setting failed: %s\n", curl_easy_strerror(res));
return 1;
}

res = curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
if (res != CURLE_OK) {
fprintf(stderr, "Option setting failed: %s\n", curl_easy_strerror(res));
return 1;
}

res = curl_easy_perform(curl);
if (res != CURLE_OK) {
fprintf(stderr, "Perform failed: %s\n", curl_easy_strerror(res));
return 1;
}

curl_easy_cleanup(curl);

return 0;
}
```

Теперь код должен выполнять запрос через прокси и вывести результат в стандартный вывод. Убедитесь, что у вас есть файл "socks5.txt" с указанными прокси-адресами в правильном формате, и URL, который вы хотите запросить, действительный и поддерживается библиотекой curl.
 
Возможно в URL должно быть "http://", а "https://".
 
Добавь сразу после строки std::string proxy_url = "socks5://"s + proxy; строчку: std::cout
 
Назад
Сверху