Извините, если мой вопрос очевиден. У меня нет опыта работы с Rest Server. Я сделал длинный поиск в google и stackoverflow, но я не нашел ответа на мое дело. Я создал сервер DataSnap Rest с помощью мастера Delphi с настройками по умолчанию в XE7. В дополнение к ReverseString и EchoString по умолчанию методов, созданных мастером, я создал новый метод:Использование Indy для доступа к серверу Datasnap Rest Server
//Server Method
function TSrvServerMetodos.SenMsgToUsers(Plataform: integer;
Users: TJSONArray; Title, Msg: String): String;
begin
//staff code
end;
Мой DataSnap остальное сервер работает в локальном хосте: 8080.
На стороне клиента, я пытаюсь этот метод с использованием кода с Инди доступа:
procedure TfrmUntClientRest.Button4Click(Sender: TObject);
const //TsrvServerMetodos/
sendUrl = 'http://localhost:8080/datasnap/rest/TsrvServerMetodos/SendPushToUsers';
var
Params: TStringList;
idHTTP: TIDHTTP;
SSLIOHandler: TIdSSLIOHandlerSocketOpenSSL;
AuthHeader,r: string;
begin
idHTTP := TIDHTTP.Create(nil);
try
SslIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
idHTTP.IOHandler := SSLIOHandler;
Params := TStringList.Create;
idHTTP.Request.Host := sendUrl;
Params.Values['Plataform']:='1';
Params.Values['Users=']:='["Luiz"]';
Params.Values['Title']:='Tit';
Params.Values['Msg']:='Msg';
IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded;charset=UTF-8';
r:=IdHTTP.Post(sendUrl, Params);
Memo1.Lines.Add('Send result: ' + r);
finally
FreeAndNil(idHTTP);
Params.Free;
end;
end;
Когда я нажимаю на кнопку, чтобы запустить код выше, я получаю следующее сообщение об ошибке: «Первый шанс исключение в .. $ 747F1CDA класс Exception TDBXError с сообщением 'методом TsrvServerMetodos.updateSendPushToUsers не найден в списке метода сервера' Процесс DataSnapServer.exe (6236)»
Моей проблема:
Моя процедура SendPushToUsers, но Rest Server сопоставляет updateSendPushToUsers. Может ли кто-нибудь помочь мне решить эту проблему?
Есть ли способ иметь путь ярлыка к URL-адресу как http://localhost:8080/SendPushToUsers вместо http://localhost:8080/datasnap/rest/TsrvServerMetodos/SendPushToUsers?
Благодаря является Advance, Луиз
Извините, но я не запускаю приложение Server в WebServer. Это настольное автономное приложение. –
Я нашел ответ на первый вопрос здесь: http://docwiki.appmethod.com/appmethod/1.13/topics/en/DataSnap_REST_Messaging_Protocol. Помогает ли кто-нибудь по второму вопросу? С уважением, Луис –