Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2012, 16:37   #1
BuGi
 
Регистрация: 12.06.2012
Сообщений: 7
По умолчанию HTTP Req

Здравствуйте, с самого начала изучения с++ мучаюсь с работой с интернетом.
Стандартный winsock не очень подходит для этого (и в плане удобности), нашел изящное и удобное решение с помощью QT, но с ним возникли ошибки (надо было что-то в .pro файл прописывать, не очень понял), поэтому решил работать с библиотекой afxinet.h
Вот что написал http://codepaste.ru/10872/, но выскакивает ошибка при исполнении. Не подскажете что там не так или не посоветуете более удобные библиотеки?
BuGi вне форума Ответить с цитированием
Старый 12.06.2012, 17:04   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

BuGi

Не подскажете что там не так или не посоветуете более удобные библиотеки?

гоогле => codeproject => поиск => http
Rififi вне форума Ответить с цитированием
Старый 12.06.2012, 17:12   #3
BuGi
 
Регистрация: 12.06.2012
Сообщений: 7
По умолчанию

Rififi, вопрос был к тем, кто использовал множество библиотек и может посоветовать нечто простое для новичков.
BuGi вне форума Ответить с цитированием
Старый 12.06.2012, 22:59   #4
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

BuGi

для windows - WinINet, WinHTTP
универсально - cURL, ACE, Boost.Network
Rififi вне форума Ответить с цитированием
Старый 12.06.2012, 23:01   #5
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Вот что написал http://codepaste.ru/10872/, но выскакивает ошибка при исполнении.

Код:
bool DoReq(string host,string email,string url)
{
...
    con=ses.GetHttpConnection((TCHAR *)host.c_str(),port);
чтобы не выскакивала ошибка надо не втупую преобразовывать к TCHAR, а почитать что это за тип, и зачем он нужен.
Rififi вне форума Ответить с цитированием
Старый 12.06.2012, 23:10   #6
BuGi
 
Регистрация: 12.06.2012
Сообщений: 7
По умолчанию

http://stackoverflow.com/questions/1...ring-to-lpcstr
От сюда брал, вроде правильно -- компилятор ошибок не выдает, а вот при исполнении выпиливается ошибка, при чем она в этой функции

Rififi, знаешь в чем может быть проблема? Надо бы прогу уже заканчивать, а я все с этими запросами сижу

Последний раз редактировалось BuGi; 12.06.2012 в 23:20.
BuGi вне форума Ответить с цитированием
Старый 13.06.2012, 00:57   #7
BuGi
 
Регистрация: 12.06.2012
Сообщений: 7
По умолчанию

UPD, заново написал функцию (http://codepaste.ru/10881/) - ошибок не возникает, но запрос не идет. Можно как-то профиксить проблему?

при чем charles видит это, хотя хост англ буквами написан

Последний раз редактировалось BuGi; 13.06.2012 в 01:13.
BuGi вне форума Ответить с цитированием
Старый 13.06.2012, 12:08   #8
BuGi
 
Регистрация: 12.06.2012
Сообщений: 7
По умолчанию

Запрос работает! Стоило лишь в настройках проекта убрать использование UNICODE по-умолчанию

Но помогите с этим.
DoReq(host[rand()%num], em, req[rand()%num]);
Реквест почему-то не идет (чарлез не видит), хотя в host точно лежит хост, а если ручками его набрать, вроде "mail.ru", то все ок, тут-то что?

все ок, не так переменную назвал

Последний раз редактировалось BuGi; 13.06.2012 в 12:22.
BuGi вне форума Ответить с цитированием
Старый 14.06.2012, 13:07   #9
BuGi
 
Регистрация: 12.06.2012
Сообщений: 7
По умолчанию

Последняя проблема с той же программе, новую тему пилить не стал
Код:
#include<string>
#include<fstream>
#include"func.h"
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
	int num_shells=0;
	ifstream counter("shells.txt");
	string tmp;
	for(int i=0;counter.good();i++)
	{
		counter >> tmp;
		num_shells++;
	}
	const int cnt = num_shells;
	counter.close();
	string *shells = new string[cnt];
    ifstream ini("shells.txt");
    for(int i=0;ini.good();i++)
    {
        ini >> shells[i];
    }
	string *shells_host = new string[cnt];//от сюда проблема
	for(int i=0;i<cnt;i++)
	{
		shells_host[i] = LinkToHost(shells[i]);
		shells[i] = LinkToReq(shells[i],shells_host[i].size()+7);
	}//до сюда



	ifstream email("emails.txt");
	ofstream bad("bad_send.txt");
	string em; int i;
	while(email.good())
	{
		i = rand()%cnt;
		email >> em;
		DoReq(shells_host[i],em,shells[i]);
	}
	email.close();
	return 0;
}
что-то не так в 25-30 строках, ибо после компиляции и исполнения вылетает ошибка Unhandled exception at 0x77e4bef7 in 1.exe: Microsoft C++ exception: std:ut_of_range at memory location 0x0012fb8c.. но ведь запрашивается существующий индекс, не могу понять проблему, что не так? (несколько ссылок программа обрабатывает нормально, потом ошибка)
BuGi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
http server,http сервер, проблемы с post реализация на java snajper_ro Общие вопросы по Java, Java SE, Kotlin 1 23.10.2011 14:25
Http Proxy - как написать к браузеру http-прокси? SergeiGuk Общие вопросы .NET 0 21.05.2010 17:37
[REQ] Из Access в шаблон Excel Malaec Microsoft Office Access 2 24.07.2009 06:54
(REQ)Установка системы защиты на уровне пользователей Malaec Microsoft Office Access 10 17.06.2009 05:07