Sponsored Content
Top Forums Shell Programming and Scripting HTTP Query Request & Parsing returned XML output Post 71142 by cbkihong on Friday 6th of May 2005 08:48:12 PM
Old 05-06-2005
(1) You can always construct the query string from the parameters manually. It's just a matter of 'key=value' pairs with '&' in between (as you have mentioned). If you have the list of key-value pairs ready, this should be easy but you need to watch out that non-alphanumeric characters should be escaped by the %XY notation, where XY is the hex. representation of the character's ASCII value.

Or, you can use the modules URI and URI::QueryParam which I think is safer.

Code:
use URI;
use URI::QueryParam;
$u = new URI("http://someserver.com/control/servlet");
%aryParams = (
    'test1' => 'value1',
    'test2' => '$abc#def',
);
foreach (keys %aryParams) {
	$u->query_param($_, $aryParams{$_});
}
print $u->as_string() . "\n";

Output:
Code:
http://someserver.com/control/servlet?test1=value1&test2=%24abc%23def

Note that the module will do the necessary escaping for you, automatically.

Finally, use LWP::Simple to fire the HTTP request.

(2) For reading XML files, I have previously tried using XML::Simple. It builds a data structure corresponding to the XML file. Suitable for small XML files that are not so complicated but it is quite convenient.

A more complex alternative is XML::Parser, with a more-or-less SAX-like API. I haven't used this before in practice. And there are many other choices of XML parsing modules available on CPAN. Go to search.cpan.org and have a look.

I have recently worked on a PHP project with lots of reading and processing from XML files. I decided to use XPath extensively and found that I required far less code with XPath than conventional "tree-walk" mechanisms. You can extract an arbitrary node anywhere in the document with some precise conditions specified just as SQL in database queries, which is handy for more complex analysis. In Perl, an equivalent module is XML::XPath.

You need to download most of these modules as they are not in the core distribution.
 

10 More Discussions You Might Find Interesting

1. SCO

XML Import & HTTP Post

this may be very basic to some but all new to me I have an application running on SCO Unix server which issues an HTTP Post request to a server with the results being returned in I.E browser window in XML format I need to import these results into my customers application and dont know how to... (1 Reply)
Discussion started by: ccarcher
1 Replies

2. Shell Programming and Scripting

Http request in Linux

Hi, i need a guide how to write a script which i can do a http request. Let say the request look like below; http://www.test.com?txid=1&type=service&server=linux I have a list of "txid" (in *.txt) and need to run all "txid" acordingly. So that mean, every transaction i have to refer "txid"... (7 Replies)
Discussion started by: malaysoul
7 Replies

3. UNIX for Dummies Questions & Answers

HTTP request

Can anybody tell about http request processing in shell script..? (3 Replies)
Discussion started by: noufal
3 Replies

4. Shell Programming and Scripting

How to send XML data using HTTP Post Request

How to hit HTTP Post Request along with sending XML data to a Remote server through command line utility like wget (or anything else). (0 Replies)
Discussion started by: sandeep reddy
0 Replies

5. Shell Programming and Scripting

Awk & sed query for output

Hello, I have a file. its content are like below. mdn:87439842 imsi:23082038203 Ctime:12082010 01:20:10 mdn:9324783783 imsi:402349823322 Ctime: 12072010 01:20:10 mdn:87439842 imsi:23082038203 Ctime: 23072010 01:20:10 mdn:87439842 imsi:23082038203 Ctime:18072010 01:20:10 mdn:87439842... (3 Replies)
Discussion started by: Sanket11
3 Replies

6. Shell Programming and Scripting

Capture query returned values in file.

Hi All, I am connecting to Oracle DB from UNIX script. Want to capture all dates between start date and end date and store them in file. Once this is done, want to read dates one by one. How to achive this in UNIX and Oracle? Please let me know if you have any idea on the same. Thanks and... (4 Replies)
Discussion started by: Nagaraja Akkiva
4 Replies

7. Shell Programming and Scripting

http request

I am running a website but I still have problems with the "service temporarily unavailable error". I want to make a simple check if the website is up and running. Does anybody has an idea how to do it? (the site is password protected, so you have to add a user and pwd before logging in). ... (2 Replies)
Discussion started by: jurgen
2 Replies

8. Shell Programming and Scripting

Help in parsing XML output file in perl.

Hi I have an XML output like : <?xml version="1.0" encoding="ISO-8859-1" ?> - <envelope> - <body> - <outputGetUsageSummary> - <usgSumm rerateDone="5"> - <usageAccum accumId="269" accumCaptn="VD_DP_AR" inclUnits="9999999.00" inclUnitsUsed="0.00" shared="false" pooled="false"... (7 Replies)
Discussion started by: rkrish
7 Replies

9. Shell Programming and Scripting

Parsing the http post request

Hi, I am trying to write a shell script to parse the post request data that it received to a xml file. Below is the post request data that script is receiving. -----------------------------7dd2339190c8e Content-Disposition: form-data; name="param1" 1... (2 Replies)
Discussion started by: jdp
2 Replies

10. Shell Programming and Scripting

SQL query output convert to HTML & send as email body

Hi , I have a sql query in the unix script ,whose output is shown below.I want to convert this output to HTML table format & send email from unix with this table as email body. p_id src_system amount 1 A 100 2 B 200 3 C ... (3 Replies)
Discussion started by: jagadeeshn04
3 Replies
HTTP::OAI::Repository(3pm)				User Contributed Perl Documentation				HTTP::OAI::Repository(3pm)

NAME
HTTP::OAI::Repository - Documentation for building an OAI compliant repository using OAI-PERL DESCRIPTION
Using the OAI-PERL library in a repository context requires the user to build the OAI responses to be sent to OAI harvesters. SYNOPSIS 1 use HTTP::OAI::Harvester; use HTTP::OAI::Metadata::OAI_DC; use XML::SAX::Writer; use XML::LibXML; # (all of these options _must_ be supplied to comply with the OAI protocol) # (protocolVersion and responseDate both have sensible defaults) my $r = new HTTP::OAI::Identify( baseURL=>'http://yourhost/cgi/oai', adminEmail=>'youremail@yourhost', repositoryName=>'agoodname', requestURL=>self_url() ); # Include a description (an XML::LibXML Dom object) $r->description(new HTTP::OAI::Metadata(dom=>$dom)); my $r = HTTP::OAI::Record->new( header=>HTTP::OAI::Header->new( identifier=>'oai:myrepo:10', datestamp=>'2004-10-01' ), metadata=>HTTP::OAI::Metadata::OAI_DC->new( dc=>{title=>['Hello, World!'],description=>['My Record']} ) ); $r->about(HTTP::OAI::Metadata->new(dom=>$dom)); my $writer = XML::SAX::Writer->new(); $r->set_handler($writer); $r->generate; Building an OAI compliant repository The validation scripts included in this module provide the repository admin with a number of tools for helping with being OAI compliant, however they can not be exhaustive in themselves. METHODS
$r = HTTP::OAI::Repository::validate_request(%paramlist) $r = HTTP::OAI::Repository::validate_request_2_0(%paramlist) These functions, exported by the Repository module, validate an OAI request against the protocol requirements. Returns an HTTP::Response object, with the code set to 200 if the request is well-formed, or an error code and the message set. e.g: my $r = validate_request(%paramlist); print header(-status=>$r->code.' '.$r->message), $r->error_as_HTML; Note that validate_request attempts to be as strict to the Protocol as possible. $b = HTTP::OAI::Repository::validate_date($date) $b = HTTP::OAI::Repository::validate_metadataPrefix($mdp) $b = HTTP::OAI::Repository::validate_responseDate($date) $b = HTTP::OAI::Repository::validate_setSpec($set) These functions, exported by the Repository module, validate the given type of OAI data. Returns true if the given value is sane, false otherwise. EXAMPLE
See the bin/gateway.pl for an example implementation (it's actually for creating a static repository gateway, but you get the idea!). perl v5.12.4 2010-09-01 HTTP::OAI::Repository(3pm)
All times are GMT -4. The time now is 05:30 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy