2011-11-23 13 views
8

का उपयोग कर HTTP मल्टीपार्ट प्रतिक्रिया क्या मल्टीपार्ट अनुरोध की तरह HTTP मल्टीपार्ट प्रतिक्रिया (पर्ल/PHP का उपयोग करके) प्रदान करना संभव है? परिदृश्य इस तरह है, मैं एक यूआरएल प्रदान करना चाहता हूं जो कर्मचारी के लिए पैरामीटर लेता है, और बदले में प्रतिक्रिया में कर्मचारी की फोटो, नवीनतम पेस्लिप और नाम, आयु और पता जैसी जानकारी होनी चाहिए। प्राप्त करने वाला अंत ब्राउज़र नहीं है, लेकिन यह एक ऐसा कार्यक्रम होगा जो इस प्रतिक्रिया को प्राप्त करता है और बाद में उन्हें संसाधित करता है। यह कैसे करना है इस पर कोई विचार?पर्ल या PHP

मेरे उपरोक्त प्रश्न पर अधिक जानकारी देने के लिए, मुझे अपने दोस्त को एक यूआरएल प्रदान करना होगा जो प्रोग्रामेटिक रूप से प्रतिक्रिया प्राप्त करेगा। उदा (पर्ल में):

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

मेरा आवेदन केवल डेटा के साथ ही नहीं, बल्कि फ़ाइलों के साथ प्रतिक्रिया देना चाहिए! मुझे मल्टीपार्ट प्रतिक्रिया वापस करने के लिए कहा जा रहा था।

अब मुझे कोडिंग के साथ कैसे शुरू करना है। "मल्टीपार्ट प्रतिक्रिया" पर Google खोज ने उन पृष्ठों को वापस नहीं किया जिनके साथ मैं सीख सकता हूं और शुरू कर सकता हूं। हालांकि, चांसन द्वारा टिप्पणी वास्तव में सहायक थी, साथ ही साथ उसका कोड नमूना 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; 

आउटपुट:

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

धन्यवाद। यह मेरे लिए अच्छा काम किया। –

संबंधित मुद्दे