2011-11-23 8 views
8

マルチパート要求と同様にHTTPマルチパート応答(Perl/PHPを使用)を提供できますか?このシナリオは、EmployeeIDのパラメータを取るURL whickを提供したいと考えています。返答は、従業員の写真、最新のペイチップ、名前、年齢、住所などの情報で構成する必要があります。受信側はブラウザではありませんが、この応答を取得して後で処理するプログラムになります。どのようにこれを行う上の任意のアイデア?PerlまたはPHPを使用したHTTPマルチパート応答

私の上記の質問に関する詳細情報を提供するには、プログラムで応答を受け取る友達にURLを提供する必要があります。例えば、 (Perl版):

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

私のアプリケーションは、データだけでなくファイルでも応答するはずです。私はマルチパートレスポンスを返すように依頼されていました。

私は今コーディング自体から始める方法はありませんでした。 「マルチパートレスポンス」のgoogle検索では、私が学び始めることができるページは返されませんでした。しかし、chansenのコメントは、彼のコードサンプルhttps://gist.github.com/1391017と同様に、本当に役に立ちました。どうもありがとう。

+2

このhttps://gist.github.com/1391017はあなたが始める必要があります。 – chansen

+0

@chansenリンクをありがとう。それはまさに私が探していたものです。私はまた、詳細を私の質問を更新しました。 –

+2

司会者がこの質問を再開し、このコメントにいくつかのコメントを削除して、既存のコメントを文脈から外しました。司会者の無能を含む完全な履歴を表示するオプションがあることを希望します。ありがとう。 – chansen

答えて

8

私は返信として私のオリジナルの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; 

出力:スリカンス-vittal @

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-- 
+0

それは私のためにうまくいった。 –

関連する問題