2017-01-31 2 views
2

Я проект сделал из WebBroker REST, работает как сервис, мне нужно изменить Cotent-Type ответ на application/json и по умолчанию WebBroker REST приводит меня в результатеКак изменить ответ Content-Type в REST DataSnap

Content-Type 'text/html; кодировка = ISO-8859-1'

изменить реакцию путем доступа к методу

GetInvocationMetadata (True) = '.ResponseContentType приложения/JSON'

из класса Data.DBXPlatform , но он все еще не разрешает его, он добавляет еще один Content-Type чуть ниже текущего.

Это происходит только в WebBroker REST, если я создаю проект на сервере DataSnap, я обычно его получаю. Но мне нужен WebBroker REST для доступа к информации, которую клиент отправляет мне.

Пример того, как возникнуть проблема.

  • Создание проекта из DataSnap REST Application

В классе серверных методов, сделать ту же модель.

uses System.StrUtils, Data.DBXPlatform; 

function TServerMethods1.EchoString(Value: string): string; 
begin 
    Result := Value; 
    GetInvocationMetadata.ResponseContentType := 'application/json'; 
end; 

Пример ответа Заголовок.

Подключение: закрыть
Тип контента: текст/html; кодировка = ISO-8859-1
Content-Length: 25
Дата: Вт, 10 сентября 2013 16:41:37 GMT
Pragma: dssession = 542354.126073.592372, dssessionexpires = 1200000
Content-Type: применение/json

ответ

3

В новом приложении ApplicationSnap WebBroker Application Wizard вы можете создать отдельный серверный модуль. В сгенерированном модуле WebModuleUnit1.pas существует переменная WebModuleClass, которая является потомком TWebModule. Этот объект WebModuleClass имеет публичное свойство Response типа TWebResponse, которое дает вам возможность устанавливать ContentType.

http://docwiki.embarcadero.com/Libraries/Berlin/en/Web.HTTPApp.TWebResponse.ContentType

+0

Я использую Delphi XE7 в WebModuleUnit1.pas создать функцию. процедура TWebModule1.WebModuleAfterDispatch (отправитель: TObject; Запрос: TWebRequest; ответ: TWebResponse; var Handled: Boolean); begin Response.ContentType: = 'application/json'; конец; и заголовок ответа есть. Подключение: закрыть Content-Type: application/json; кодировка = ISO-8859-1 Content-Length: 25 Дата: Вт, 10 сентября 2013 16:41:37 GMT Pragma: dssession = 542354.126073.592372, dssessionexpires = 1200000 , но мне нужно в тип контента только приложения/json, имеет? –

+0

У вас есть идеи? –

Смежные вопросы