• 0
giveaway

Альтернатива IDHTTP?

Вопросы

При написании кода под Windows я обычно использую WinNT, чтобы определить, выходит ли пользователь в Интернет через файрвол, а также для проверки сертификата сайта, когда клиент подключается к нему. Чем можно заменить WinNT под Firemonkey, чтобы выполнить эти задачи – проверку наличия файрвола и проверку сертификата сайта? Спасибо.

Изменено пользователем giveaway

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 ответа на этот вопрос

  • 0
43 минуты назад, krapotkin сказал:

THTTPClient

Прошу прощения, у меня в вопросе опечатка. Вместо IDHTTP я хотел писать winnt.h - что-то меня переклинило. Поправил первый пост.
А вот пользуясь IDHTTP, я не смог понять как именно осуществить с ее помощью нужные мне задачи. Поэтому я стал искать альтернативу. Где бы в офиц. документации найти как именно разрешить мой случай, поиск в ней ужасный))
http://www.indyproject.org/docsite/html

Изменено пользователем giveaway

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От Sashar333
      Здравствуйте! Вопрос такой:
      Есть процедура:
      Если переменные inn,capcha и capchaToken указаны правильно то Idhttp работает как надо, если inn или capcha не верны то прим Idhttp.post программа выдает ошибку:

      а хочется получить данные как в анализаторе:

      Как можно это сделать? 
    • От Кирилл
      Добрый день!
      Возникла необходимость из программы на Android отправлять запросы на web сервер и получать ответ.
      Пробую использовать TidHTTP:
      - кинул на форму компонент TidHTTP;
      - вызываю:  
      procedure TForm1.btSendClick(Sender: TObject); var list: TStringList; s: string; begin list := TStringList.Create; try list.Add('1'); try s := IdHTTP1.Post('http://127.0.0.1', list); ShowMessage(s); except on E: Exception do ShowMessage('Error: ' + E.Message); end; finally FreeAndNil(list); end; end; - в результате программа закрывается. Без всяких сообщений.
      Запускал на смартфоне Samsung Galaxy A3 (2016) Android 6.0.1.
      В чем может быть проблема?
       
       
       
       
       
       
    • От AndreyS
      День добрый! Пишу приложение, которое периодически загружает информацию с сайта. Способ простейший - 
      SiteResult := IdHTTP.Get('http://example.com/'); На компе стоит dr. web. Обычно, когда какое-либо приложение пытается получить данные из сети, вываливается стандартное окошко брандмауэра, мол, так и так, данное приложение пытается получить доступ к сети, разрешить, заблокировать или создать для него правило. В моем же случае такого не происходит. Просто при выполнении  указанной строки кода появляется сообщение об ошибке сокета #10013 Access Denied в независимости от указанного адреса (включая localhost). При попытке отправки POST-запроса - та же история. При отключении брандмауэра dr. web все запросы отрабатываются без осложнений)). В чем может быть причина? Может у TidHTTP должны быть определенным способом заполнены какие-то свойства?
    • От R.is
      Подскажите пожалуйста как избежать данную проблему, пытаюсь загрузить исходный код страницы IdHTTP1.Get('сайт') а Indy говорит что ее не существует 
      http/1.1 404 not found  
    • От Rusland
      Так как не получается работать с IdHTTP в сервисе, решил попробовать компонент NetHTTPClient. Бросил NetHTTPClient1 на форму.
      Хочу открыть адрес https://ya.ru
      В папку \Win32\Debug положил libeay32.dll и ssleay32.dll (они рабочие, проверены с IdHTTP)
       
      Код (пока тестирую на обычном приложении, а не в сервисе):
      Получаю access violation в System.Net.HTTPClient в строке 1965 
      if (Result.Value.Chars[0] = '"') and (Result.Value[High(Result.Value)] = '"') then видимо из-за того что Result.Value пустой. 
      А если попробовать открыть https://mail.ru такого не происходит и страница нормально скачивается.
       
      В чем проблема?
    • От Ethernet
      Доброго вам времени суток, уважаемые форумчане.
      Столкнулся с проблемой нажатия на кнопку сайта.

      Инструментарий:
      Delphi XE7 --> FM;
      Indy 10.6.0.5169 --> idHTTP
       
      Свойства idHTTP1:
      CookieManager  | IdCookieManager1
      AllowCookies      | True
      HandleRedirects | True
       
      Процедура в разрабатываемом приложении:
      procedure SelenaURL.SendData(Captcha: string); var i: Integer; Text: String; begin try Params := TStringList.Create; Params.Add('title=' + fMain.eTitle.Text); Params.Add('cat_id=121'); case fMain.cbCategory.ItemIndex of 0: Params.Add('pred=1'); 1: Params.Add('pred=2'); end; Params.Add('price=' + fMain.eCost.Text); Params.Add('currency=1'); case fMain.cbCity.ItemIndex of 0: Params.Add('city_id=1'); 1: Params.Add('city_id=2'); 2: Params.Add('city_id=3'); 3: Params.Add('city_id=4'); 4: Params.Add('city_id=5'); end; Text := fMain.mText.Lines[0]; for i := 1 to fMain.mText.Lines.Count - 1 do Text := Text + #13#10 + fMain.mText.Lines[i]; Params.Add('description=' + Text); Params.Add('name_from=' + fMain.eName.Text); Params.Add('email_from=' + fMain.eMail.Text); Params.Add('phone_from=' + fMain.ePhone.Text); for i := 1 to fMain.ListBox2.Count do Params.Add('photo_' + IntToStr(i) + '=' + fMain.ListBox2.Items[i - 1]); Params.Add('period=30'); Params.Add('captcha=' + Captcha); Params.Add('submit=Добавить объявление'); // Что с ним, что без него запрос не уходит Response := fMain.IdHTTP1.Post(aURL, Params); fMain.mText.Lines.Clear; fMain.mText.Text := Response; // Тут можно увидеть, что переадресации никакой не было. Где стояли, там и стоим finally Params.Free; end; end; Код самой кнопки:
      <input class="buttom" onclick="addForm(document.getElementById('f'))" value="Добавить объявление" type="submit"> Код процедуры, выполняемая кнопкой:
      /* Подгружаем форму - добавить объявление */ function addForm(value) { form_result = document.getElementById('ajax_result'); form_indicator = document.getElementById('ajax_indicator'); form_result.className = 'ajaxform-result-hide'; form_indicator.innerHTML = '<img src="'+AJAX_DIR+'templates/default/images/indicator.gif">'; form_indicator.className = 'ajaxform-indicator'; JsHttpRequest.query( AJAX_DIR+'ajax.php?act=add', { q: value }, function(result, errors) { form_result.innerHTML = ''; if (result['q']) { form_result.innerHTML = '<div class="ajaxform-result"><fieldset class="fieldset_error"><legend class="legend_error">Ошибка:</legend>'+result['q']+'</fieldset></div>'; form_result.className = ''; form_indicator.innerHTML = ''; document.getElementById("ajax_form").style.display = 'block'; }else{ if(result['action'] == '3') { form_result.innerHTML = '<div class="ajaxform-result"><fieldset class="fieldset_msg"><legend class="legend_msg">Сообщение:</legend><div class="msg">Ваше объявление было отправлено на проверку. <a href="'+AJAX_DIR+'">Перейти на главную страницу</a>.<br><br>Ваши данные: <br><b>ID:</b> '+result['id']+' <br><b>Пароль:</b> '+result['password']+'</div></fieldset>'; }else{ form_result.innerHTML = '<div class="ajaxform-result"><fieldset class="fieldset_msg"><legend class="legend_msg">Сообщение:</legend><div class="msg">Ваше объявление "<b>ID'+result['id']+'</b>" было успешно добавлено. <a href="'+AJAX_DIR+''+result['id']+'.html">Перейти к объявлению</a>.<br><br>Ваши данные: <br><b>ID:</b> '+result['id']+' <br><b>Пароль:</b> '+result['password']+'</div></fieldset>'; } form_result.className = ''; form_indicator.innerHTML = ''; document.getElementById("ajax_form").style.display = 'none'; } }, false // не кэшировать ); } /* конец */ Наведите хотя бы в какую сторону копать. Срочно необходимо завершить приложение, но возникла данная проблема.
      Буду рад любой вашей помощи. Спасибо!
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу