BlackBerry Forums Support Community               

Closed Thread
 
LinkBack Thread Tools
Old 03-13-2009, 03:55 PM   #1 (permalink)
New Member
 
Join Date: Mar 2009
Model: 8330
PIN: N/A
Carrier: Rogers
Posts: 2
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default HTTP POST and passing parameters in URLs

Please Login to Remove!

Hi all,

I am working on an app where we have to pass parameters to a web app using HTTP POST in a HTTPS URL in the form of:

example.com/path/app.asmx/Function?Param1=123456&Param2=098765

We are expecting an XML response in the form of
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="example.com/path/">response</string>

I am not sure how to set up a connection to do this and how to make the program extract the string from the response. Any help would be much appreciated.
Offline  
Old 03-14-2009, 07:42 PM   #2 (permalink)
BlackBerry Extraordinaire
 
Join Date: Jan 2006
Model: LEZ10
OS: 10.0.10
Carrier: Rogers CA
Posts: 1,704
Post Thanks: 20
Thanked 77 Times in 68 Posts
Default

Putting parameters in the URL is not the HTTP POST protocol, but you just include the parameters in the URL as you have it coded there (with the https:// prefix of course, eg):

Code:
HttpConnection http = (HttpConnection)Connector.open("https://example.com/path/app.asmx/Function?Param1=123456&Param2=098765");

 returnCode = http.getResponseCode();
 String returnMessage = http.getResponseMessage();
 InputStream in = http.openInputStream();
                        
 returnContentType = http.getType();
            
 int cl = (int)http.getLength();
 if (cl > 0)
 {
    byte[] buf = new byte[cl];
    in.read(buf);
    returnContent = new String(buf);
 }
 else
 {
    StringBuffer sb = new StringBuffer();
    byte[] buf = new byte[1024];
    int n = 0;
                            
    while ((n = in.read(buf)) > 0)
    {
       sb.append(new String(buf,0,n));
    }
    returnContent = sb.toString();
 }
                        
 in.close();
 http.close();
Offline  
Old 03-15-2009, 06:41 PM   #3 (permalink)
Thumbs Must Hurt
 
Join Date: Nov 2008
Location: Sioux Falls, SD
Model: 9530
PIN: N/A
Carrier: Verizon Wireless
Posts: 65
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

The problem with simply appending the parameters onto the URL is that you're actually making a GET request. Some APIs will reject a GET when they're expecting a POST, others will simply handle it.

Making a POST Request

Code:
HttpConnection oCon = (HttpConnection)Connection.open("http://example.com/path/app.asmx/Function");

URLEncodedPostData oPostData = new URLEncodedPostData(URLEncodedPostData.DEFAULT_CHARSET, false);

post.append("param1", "ThisIsTheValueOfParam1");
post.append("param2", "ABC123");

OutputStream strmOut = oCon.openOutputStream();
strmOut.write(oPostData.getBytes());

strmOut.flush();
strmOut.close();
** I typed this out, so there maybe some spelling mistakes

HRBUCKLEY's example is good for getting the return data as a String. You'll then have to write some code to parse the XML. I prefer the SAXParser.
__________________
Handspring >> Palm >> BB Pearl >> BB Storm

Tumblog: http://www.geekkink.com
Blog: http://www.zechariahs.org/blog

Last edited by zechariahs : 03-15-2009 at 06:44 PM.
Offline  
Old 03-15-2009, 09:53 PM   #4 (permalink)
New Member
 
Join Date: Mar 2009
Model: 8330
PIN: N/A
Carrier: Rogers
Posts: 2
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

hrbuckley, that did the trick, thank you very much.
zechariahs, thanks for the reply.
Offline  
Closed Thread


Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Tektronix TLA714 Portable Color Logic Analyzer Mainframe with 4M TLA7N4 2GHz
$489.0
Tektronix TLA714 Portable Color Logic Analyzer Mainframe with 4M TLA7N4 2GHz pictureSYM SPOI MAINFRAME+S700 S1900 S2100 DUAL POWER TX/RX MONITORING RF MODULES
$1999.97
SYM SPOI MAINFRAME+S700 S1900 S2100 DUAL POWER TX/RX MONITORING RF MODULES pictureTektronix 7904A 4 Compartment Mainframe Oscilloscope without modules
$89.95
Tektronix 7904A  4 Compartment Mainframe Oscilloscope without modules pictureKeysight,Agilent,HP 86100D Infiniium DCA-X Wide-Bandwidth Oscilloscope Mainframe
$36699.0
Keysight,Agilent,HP 86100D Infiniium DCA-X Wide-Bandwidth Oscilloscope Mainframe pictureVINTAGE TELEX 9251 REEL TO REEL COMPUTER MAINFRAME SERVER DATA TAPE DRIVE
$1950.0
VINTAGE TELEX 9251 REEL TO REEL COMPUTER MAINFRAME SERVER DATA TAPE DRIVE picture






Copyright 2004-2016 BlackBerryForums.com.
The names RIM and BlackBerry are registered Trademarks of BlackBerry Inc.