Type response in the REST DataSnap
I have a project made from WebBroker REST
, running as a service, I need to change the Cotent-Type
response to application/json
and by default WebBroker REST
brings me as a result the
Content-Type 'text/html; charset=ISO-8859-1'
I change the response by accessing the method
GetInvocationMetadata(True).ResponseContentType = 'application/json'
of the Data.DBXPlatform
class, but it still does not resolve it it adds another Content-Type
just below the current one.
This only happens only in WebBroker REST
, if I create a project by DataSnap Server I usually get it. But I need WebBroker REST
to access the information the client sends me.
Example of how to make the problem occur.
DataSnap REST Application
In the ServerMethods class, do the same model.
uses System.StrUtils, Data.DBXPlatform;
function TServerMethods1.EchoString(Value: string): string;
begin
Result := Value;
GetInvocationMetadata.ResponseContentType := 'application/json';
end;
Example response Header.
Connection: close
Content-Type: text/html; charset=ISO-8859-1
Content-Length: 25
Date: Tue, 10 Sep 2013 16:41:37 GMT
Pragma: dssession=542354.126073.592372,dssessionexpires=1200000
Content-Type: application/json
In New DataSnap WebBroker Application Wizard you have the option to create a separate Server Module. In the generated unit WebModuleUnit1.pas there is a variable WebModuleClass, which is a descendant of TWebModule. This WebModuleClass object has a public property Response of type TWebResponse, which gives you ability to set ContentType.
http://docwiki.embarcadero.com/Libraries/Berlin/en/Web.HTTPApp.TWebResponse.ContentType
链接地址: http://www.djcxy.com/p/8438.html上一篇: 可以(a == 1 && a == 2 && a == 3)评估为真?
下一篇: 在REST DataSnap中键入响应