HTTP-ответ с множественным ответом с использованием Perl или PHP

Возможно ли предоставлять многостраничный ответ HTTP (с использованием Perl / PHP), как и многостраничный запрос? Сценарий похож на то, что я хотел бы указать URL-адрес whick, который принимает параметр для EmployeeID, и в ответ ответ должен состоять из фотографии сотрудника, последней платежной ведомости и информации, такой как имя, возраст и адрес. Принимающая сторона не является браузером, но это будет программа, которая получит этот ответ и обработает их позже. Любая идея о том, как это сделать?

Чтобы предоставить дополнительную информацию по моему вышеуказанному вопросу, я должен предоставить URL-адрес моему другу, который будет программно получать ответ. Например, для Perl:

$response = $ua->request($my_url) 

Мое приложение должно отвечать не только данными, но и файлами! Меня попросили заставить его возвращать многочастный ответ.

Я не стал теперь начинать с самой кодировки. Поиск google в «multipart response» не возвращал страницы, с которыми я могу учиться и начинать. Тем не менее, комментарий Шансена был действительно полезным, а также его пример кода https://gist.github.com/1391017 . Большое спасибо.

Related of "HTTP-ответ с множественным ответом с использованием Perl или PHP"

В качестве ответа я представляю свой оригинальный https://gist.github.com/1391017 .

 #!/usr/bin/perl use strict; use warnings; use HTTP::Response; my $response = HTTP::Response->new( 200, 'OK', [ 'Content-Type' => 'multipart/form-data' ] ); $response->protocol('HTTP/1.1'); $response->date(time); $response->server('Foo/1.0'); my $name = HTTP::Message->new([ 'Content-Type' => 'text/plain; charset=UTF-8', 'Content-Disposition' => 'form-data; name="name"', ], 'John Doe'); $response->add_part($name); my $note = HTTP::Message->new([ 'Content-Type' => 'text/plain; charset=UTF-8', 'Content-Disposition' => 'form-data; name="note"', ], <<'NOTE'); Resources: o http://search.cpan.org/dist/HTTP-Message/lib/HTTP/Message.pm o http://search.cpan.org/dist/HTTP-Message/lib/HTTP/Response.pm o http://tools.ietf.org/html/rfc2388 o http://tools.ietf.org/html/rfc2616 NOTE $response->add_part($note); my $blob = HTTP::Message->new([ 'Content-Type' => 'application/octet-stream', 'Content-Disposition' => 'form-data; name="blob"; filename="blob.bin"', ]); $blob->add_content('a chunk'); $blob->add_content(' of data'); $response->add_part($blob); print $response->as_string; 

Вывод:

 HTTP/1.1 200 OK Date: Thu, 24 Nov 2011 10:03:25 GMT Server: Foo/1.0 Content-Type: multipart/form-data; boundary=xYzZY --xYzZY Content-Type: text/plain; charset=UTF-8 Content-Disposition: form-data; name="name" John Doe --xYzZY Content-Type: text/plain; charset=UTF-8 Content-Disposition: form-data; name="note" Resources: o http://search.cpan.org/dist/HTTP-Message/lib/HTTP/Message.pm o http://search.cpan.org/dist/HTTP-Message/lib/HTTP/Response.pm o http://tools.ietf.org/html/rfc2388 o http://tools.ietf.org/html/rfc2616 --xYzZY Content-Type: application/octet-stream Content-Disposition: form-data; name="blob"; filename="blob.bin" a chunk of data --xYzZY--