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 <alans_1...@yahoo.com> 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 <alans_1...@yahoo.com> 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&param2=def&param3=ghi".  I create the string in
> > similar way to his example which was like:
> > *
> > *        String parameters = "param1=" +
> > URLEncoder.encode("abc","UTF-8")+
> > *                      "&param2="+URLEncoder.encode("def","UTF-8")+
> > *                      "&param3="+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 <budiat...@gmail.com> wrote:
>
> > > i figured it out.http://digitallibraryworld.com/?p=189
>
> > > On Aug 16, 3:21 pm, lbendlin <l...@bendlin.us> 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 android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to