Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 613

/ вопрос открыт /

Здравствуйте, эксперты!
Здравствуйте, помогите пожалуйста разобраться с отправкой XML файла.
по инструкции
[QUOTE]Сформировать xml-файл (client.xml — название файла) вида для запроса
реквизитов организации:
[CODE]<?xml version="1.0" encoding="UTF-8"?>
<ns:Documents Version="1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01"
xmlns:oref="http://fsrar.ru/WEGAIS/ClientRef"
xmlns:qp="http://fsrar.ru/WEGAIS/QueryParameters">
<ns:Owner>
<ns:FSRAR_ID>00040218</ns:FSRAR_ID>
</ns:Owner>
<ns:Document>
<ns:QueryClients>
<qp:Parameters>
<qp:Parameter>
<qp:Name>ИНН</qp:Name>
<qp:Value>1681000049</qp:Value>
</qp:Parameter>
</qp:Parameters>
</ns:QueryClients>
</ns:Document>
</ns:Documents>[/CODE]
Отправить запрос (1.5.1) в УТМ с помощью команды вида:
curl -F''xml_file=@client.xml'' [url]http://localhost:8080/opt/in/QueryPartner[/url]
[/QUOTE]
Что я и делаю
[CODE]procedure TFmMain.BitBtn2Click(Sender: TObject);
var
XMLDoc : TXMLDocument;
HTTP : THTTPSend;
FS: TFileStream;
s : string;
begin
try
Memo1.Clear;
XMLDoc := TXMLDocument.Create(Application);
with XMLDoc do
begin
Options := Options + [doNodeAutoIndent];
Active := True;
Version := '1.0';
Encoding := 'UTF-8';
with AddChild('ns:Documents') do
begin
Attributes['Version'] := '1.0';
Attributes['xmlns:xsi'] := 'http://www.w3.org/2001/XMLSchema-instance';
Attributes['xmlns:ns'] := 'http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01';
Attributes['xmlns:oref'] := 'http://fsrar.ru/WEGAIS/ClientRef';
Attributes['xmlns:qp'] := 'http://fsrar.ru/WEGAIS/QueryParameters';
with AddChild('ns:Owner') do ChildValues['ns:FSRAR_ID'] := '020000616195';
with AddChild('ns:Document') do
with AddChild('ns:QueryClients') do
with AddChild('qp:Parameters') do
with AddChild('qp:Parameter') do
begin
ChildValues['qp:Name'] := 'ИНН';
ChildValues['qp:Value'] := '6143063881';
end;
SaveToFile('C:tempclient.xml');
end;
end;
FS := TFileStream.Create('C:tempclient.xml', fmOpenRead);
FS.Position := 0;
HTTP := THTTPSend.Create;
HTTP.Document.CopyFrom(FS, FS.Size);
//HTTP.Document.SaveToFile('C:tempclient111.xml'); //Проверка, что документ есть
if HTTP.HTTPMethod('POST', 'http://localhost:8080/opt/in/QueryPartner') then
begin
s := HTTP.ResultString+':'+IntToStr(HTTP.ResultCode);
//ShowMessage(s);
Memo1.Lines.Add(s);
end;
finally
FreeAndNil(XMLDoc);
end;
end;[/CODE]
Получаю ошибку
[QUOTE]Server Error:500[/QUOTE]
Подскажите где я ошибся???
Есть пример на C#
var boundary = "xxxxxxxxxxxxxxxxxxxxxxx" + DateTime.Now.Ticks.ToString("x");
var boundarybytes = Encoding.ASCII.GetBytes("rn--" + boundary + "rn");
var wr = (HttpWebRequest)WebRequest.Create(uri);
wr.Method = "POST";
wr.ContentType = "multipart/form-data; boundary=" + boundary;
var rs = wr.GetRequestStream();
rs.Write(boundarybytes, 0, boundarybytes.Length);
var header = headerTemplate = "Content-Disposition: form-data; name="xml_file"; filename="@client.xml"rnContent-Type: application/xmlrnrn";
var headerbytes = Encoding.UTF8.GetBytes(header);
rs.Write(headerbytes, 0, headerbytes.Length);
var fileContentBytes = Encoding.UTF8.GetBytes(fileContent);
rs.Write(fileContentBytes, 0, fileContentBytes.Length);
var trailer = Encoding.ASCII.GetBytes("rn--" + boundary + "--rn");
rs.Write(trailer, 0, trailer.Length);
rs.Close();
wresp = wr.GetResponse();
помогите перевести его на Delphi

tarakan Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: tarakan (статус: Посетитель)
Вопрос отправлен: 21 января 2016, 00:09
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 25 сентября 2022, 11:14
Выполнено за 0.02 сек.
Рейтинг@Mail.ru