Кодирование содержимого с помощью Delphi SOAP Server - PullRequest
0 голосов
/ 13 ноября 2018

Я создал сервер Delphi SOAP с берлинской версией Delphi.На данный момент все, что делает мой сервис - это возвращает содержимое файла.Клиент ожидает, что данные будут UTF-8.

Мой коллега (то есть клиент) указывает, что они получают это сообщение, когда пытаются использовать мой ответ:

Тип содержимого text / xml;charset = us-ascii ответного сообщения не соответствует типу содержимого привязки (text / xml; charset = utf-8).При использовании пользовательского кодировщика убедитесь, что метод IsContentTypeSupported реализован правильно.

К сожалению, они не могут больше мне это сказать.Я надеялся, что они смогут точно проверить, что не так с моими данными, но, очевидно, это даже не доходит до их логики в рамках MS.

Текстовый файл, который я возвращаю, сохраняется как данные UTF-8.Должен ли мой код ниже быть достаточно?Или нужно установить какой-нибудь флаг кодировки?

procedure OpenAndReset( fileName : String ; var f : TextFile );
begin
  try
    if not fileExists( fileName ) then
      FileClose( FileCreate ( fileName ) );
    AssignFile( f , fileName );
    FileMode := fmOpenRead;
    Reset( f );
  except
    on E: Exception do begin
      E.Message := 'File Name = ' + FileName + #13#10 + E.Message;
      Raise;
    end;
  end;
end;


function fileToString( filename : String ): String;
var txtFile: TextFile;
    s      : String;
begin
  try
    OpenAndReset( fileName , txtFile );
    s := '';
    result := '';
    readLn( txtFile , s );
    while not Eof( txtFIle ) do begin
      result := result  + s;
      readLn( txtFile , s );
    end;

    if s <> '' then
      result := result + s;
  finally
    System.Close( TxtFile );
  end;
end;


function TRedNMXPurvisService.SetIncidentEvent(const Value: String): String; stdcall;
begin
  Result := filetostring(ExtractFileDir(ParamStr(0))+'\sampleutf8encoded.xml');
end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...