Found the problem on 2.3 in the emulator at least. It works if I add
urlConnection.setRequestProperty("Content-Type", "application/x-www-
form-urlencoded");
after the urlConnection.setRequestMethod("POST");
line in the example in my earlier posting.
The link I worked from (also given above) specifically said the line
wasn't needed, but I guess it is. It works for me now in the emulator
in both 2.2.2 and 2.3.
Alan
On Sep 16, 3:25 pm, Alan <[email protected]> wrote:
> I may post this to a new subject, but I'll try here. Two days after
> giving this code sample, I found it doesn't work on Android ver. 2.3!
> My phone (LG Ally) and emulator were running version 2.2.2 & the code
> below was working fine. I had a co-worker run the program on his phone
> & it didn't work. His phone was an HTC running 2.3. So, I changed my
> emulator to version 2.3 and sure enough it didn't work in the same
> way. GET was working, but POST did not on 2.3. Well... actually the
> Response code was the same, 200, so it worked right? But, the value it
> returned was null. I've been trying to find any mention of a
> difference like this between versions on this list, but no luck so
> far. The only clue I have is that a bit after a try at a POST, I get
>
> SntpClient Request time failed: java.net.socketException: Address
> family not supported by protocol
>
> I'm not sure that is related to this problem, but it's all I have to
> go on so far (that and it works on 2.2 and not 2.3!)
>
> Anybody have any ideas about this problem?
>
> Alan
>
> On Sep 14, 1:26 pm, Alan <[email protected]> wrote:
>
> > Thank you so much for sharing that link... it helped me a great deal.
> > I wound up combining parts of that code with others to come up with
> > this:
>
> > /* Note: these are some methods in a class I wrote. "mURLString" is
> > the url to
> > * talk to such as "http://somesite/somefile.php"; "parameters" are the
> > parameters to use for the POST, such
> > * as "param1=abc¶m2=def¶m3=ghi". I create the string in
> > similar way to his example which was like:
> > *
> > * String parameters = "param1=" +
> > URLEncoder.encode("abc","UTF-8")+
> > * "¶m2="+URLEncoder.encode("def","UTF-8")+
> > * "¶m3="+URLEncoder.encode("ghi","UTF-8");
> > *
> > * The result of the POST is returned in "resultString".
> > */
>
> > public String doHttpPost( String parameters )
> > {
> > String resultString = null;
>
> > URL url = null;
> > HttpURLConnectionurlConnection = null;
>
> > try {
> > url = new URL( mURLString );
> > } catch (MalformedURLException e)
> > {
> > // TODO Auto-generated catch block
> > e.printStackTrace();
> > }
>
> > try {
> > urlConnection = (HttpURLConnection) url.openConnection();
> > urlConnection.setDoOutput(true);
> > urlConnection.setRequestMethod("POST");
>
> > urlConnection.setFixedLengthStreamingMode(parameters.getBytes().length);
>
> > //send the POST out
> > PrintWriter out = new
> > PrintWriter(urlConnection.getOutputStream());
> > out.print(parameters);
> > out.close();
>
> > int response = urlConnection.getResponseCode();
> > // if resonse =HttpURLConnection.HTTP_OK = 200, then it
> > worked.
>
> > InputStream in = new
> > BufferedInputStream(urlConnection.getInputStream());
> > resultString = readStream(in);
>
> > } catch( Exception e ){
> > e.printStackTrace();
> > }
> > finally {
> > urlConnection.disconnect();
> > }
>
> > return resultString;
> > }
>
> > public static String readStream(InputStream in) throws IOException
> > {
> > StringBuilder sb = new StringBuilder();
> > BufferedReader r = new BufferedReader(new InputStreamReader(in),
> > 1000);
>
> > for (String line = r.readLine(); line != null; line = r.readLine())
> > {
> > sb.append(line).append("\n");
> > }
>
> > in.close();
>
> > return sb.toString();
> > }
>
> > On Aug 30, 1:06 pm, jesb <[email protected]> wrote:
>
> > > i figured it out.http://digitallibraryworld.com/?p=189
>
> > > On Aug 16, 3:21 pm, lbendlin <[email protected]> wrote:
>
> > > >POSTworks very different from GET. You need to spend much more energy to
> > > > format the request body. You're missing the whole Content-Disposition:
> > > > form-data and the delimiter definitions etc.
>
> > > > your out.write should then use the prepared request body string (as you
> > > > did,
> > > > sort of).
>
>
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en