![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
idhttp и ssl
talero © (2009-12-15 21:16:00)Добрый день!
Необходимо передать xml-текст на защищенное соединение методом post
sResponse: String;
fsParams: TFileStream;
begin
fsParams := TFileStream.Create('.\test.xml', fmOpenRead or fmShareDenyWrite);
try
IdHTTP1.IOHandler:=TIdSSLIOHandlerSocketOpenSSL.Create;
IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
sResponse := IdHTTP1.Post('https://www...../xml', fsParams);
ShowMessage(sResponse);
except on E: Exception do
ShowMessage('Error encountered during POST: ' + E.Message);
end;
При передаче возникает ошибка
HTTP/1.1 405 Method Not Allowed
Подскажите, пожалуйста, как с эти бороться?
Sha (2009-12-25 18:37:00) [1]Имеет смысл проверить работу без SSL
Дмитрий Белькевич (2009-12-22 13:40:00) [2]Исходя из того, что байты везде одинаковы, разумно сравнить, что отдаёт твой код на сервере и что - плюсовый. Как вариант - сделать эмуляцию сервера и/или посмотреть заголовки каким-нибудь анализатором http.
DVM (2009-12-16 08:11:00) [3]
> talero (15.12.09 23:47) [8]
> разве эта ошибка HTTP/1.1 405 Method Not Allowed связана
> как-то с подключением библиотеки?
Я просто хотел убедится что с технической стороны с SSL проблем нет.
Сервер к которому ты обращаешься он в Интернет? На него взглянуть можно?
talero (2009-12-16 03:25:00) [4]попробовали отправить на другую ссылку.
Теперь такая ошибка
10.5.1 500 Internal Server Error
The server encountered an unexpected condition which prevented it from fulfilling the request. ....
Медвежонок Пятачок (2009-12-16 00:42:00) [5]405 Method Not Allowed (Метод не применим)
Появился в HTTP/1.1.
Указанный клиентом метод нельзя применить к текущему ресурсу. В ответе сервер должен указать доступные методы в заголовке Allow разделив их запятой.
Обратите внимание что эту ошибку сервер должен возвращать если метод ему известен, но он не применим к именно к указанному в запросе ресурсу. Если же указанный метод не применим на всём сервере, то клиенту нужно вернуть ответ 501 (Not Implemented).
остается сравнить запросы из билдера и делфи каким-нибудь http аналайзером
talero (2009-12-16 00:39:00) [6]ну да. он работает например, если использовать borland builder C++.
Медвежонок Пятачок (2009-12-16 00:31:00) [7]без инди и без делфи этот пост работает ?
talero (2009-12-16 00:11:00) [8]по этому url ждут поста..
Медвежонок Пятачок (2009-12-16 00:00:00) [9]она скорее связана с неправильным урл по которому никто не ждет поста
talero (2009-12-15 23:51:00) [10]405 Method Not Allowed
The method specified in the Request-Line is not allowed for the resource identified by the Request-URI. The response MUST include an Allow header containing a list of valid methods for the requested resource.
talero (2009-12-15 23:47:00) [11]эти файлы libeay32.dll ssleay32.dll лежат в папке.
т.е. библиотеки ssl грузятся
разве эта ошибка HTTP/1.1 405 Method Not Allowed связана как-то с подключением библиотеки?
DVM (2009-12-15 23:22:00) [12]
> может быть я что-то не понимаю?
Может и не понимаешь.
К проекту подключаются не библиотеки, а заголовочные файлы к ним. Сами библиотеки OpenSSL надо скачать и установить (или положить в папку с программой). Кроме прочего, библиотеки OpenSSL требуют установленного Visual C++ Redistributable Package, который надо именно установить.
в папке с программой же должны лежать libeay32.dll ssleay32.dll
talero (2009-12-15 23:17:00) [13]может быть я что-то не понимаю? как только я кладу компоненты indy, у меня подключаются эти библиотеки.
DVM (2009-12-15 23:03:00) [14]
> talero (15.12.09 22:54) [4]
а они подцепляются нормально? Помню как то намаялся я с ними. Они еще кстати требуют установленного vcredist_x86.exe от MS.
talero (2009-12-15 22:54:00) [15]да
DVM (2009-12-15 22:38:00) [16]
> ну да..
Сами то библиотеки доступны программе в момент проверки?
talero (2009-12-15 21:41:00) [17]ну да..
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL,
IdSSLOpenSSL, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdHTTP, StdCtrls;
DVM (2009-12-15 21:33:00) [18]Indy вроде нуждается в библиотеках OpenSSL для поддержки SSL?