try logging the exception itself in the error cases. just printing 
"IOE" will get the fact that an IOException happened, but not any 
detail.

my code is very similar to yours. HttpResponse = HttpClient.execute 
(HttpGet), InputStream = HttpResponse.getEntity ().getContent (). 
then after that i start munching on the stream.

btw appending to a String each time is massively inefficient. the 
right way, IMHO, to buffer a resource as a String is to use an 
InputStreamReader whose products are routed to a StringWriter. use a 
suitable buffer size -- i use 1024 chars.

hth
j



>The first one still gives me an IOException.  It forces me to add
>throws or a couple of try/catch's for error handling but either way it
>gets IOException.  This is the code for that:
>
>public String getPrice(String symbol) throws ClientProtocolException,
>IOException {
>       DefaultHttpClient client = new DefaultHttpClient();
>         HttpGet get = null;
>         get = new HttpGet("http://oxavi.com/price.php";);
>
>         String buffer = null;
>         HttpResponse response = client.execute(get);
>         HttpEntity entity = response.getEntity();
>         int status = response.getStatusLine().getStatusCode();
>         InputStream in = entity.getContent();
>         for (int i = in.read(); i != -1; i = in.read()) {
>             buffer += (char) i;
>         }
>         in.close();
>         if (entity != null) {
>             entity.consumeContent();
>         }
>
>         return buffer;
>}
>
>When I run it I do it like this:
>
>String newprice;
>                               try {
>                                       newprice = 
>getPrice(DbAdapter.KEY_SYMBOL);
>                               } catch (ClientProtocolException e) {
>                                       newprice = "CPE";
>                               } catch (IOException e) {
>                                       newprice = "IOE";
>                               }
>
>Which results in a newprice of IOE.
>
>The second code also doesnt work for me.  I had to change alot to get
>rid of the errors, so here is mine:
>
>public String getPrice(String symbol) {
>       DefaultHttpClient client = new DefaultHttpClient();
>         HttpGet get = null;
>         get = new HttpGet("http://oxavi.com/price.php";);
>
>         HttpResponse response = client.execute(get);
>         HttpEntity entity = response.getEntity();
>         int status = response.getStatusLine().getStatusCode();
>         InputStream in = entity.getContent();
>         Document document = getDocument(in);
>         in.close();
>         if (entity != null) {
>             entity.consumeContent();
>         }
>
>
>}
>
>The only problem is that it does not recognize getDocument(), it tells
>me to create a method for it.  And I also don't understand how to
>return a string from all of this, do I have to convert the document to
>one after it gets it?
>
>On Oct 26, 1:52 pm, Christine <[EMAIL PROTECTED]> wrote:
>>  this works:
>>              String buffer = null;
>>              HttpResponse response = client.execute(get);
>>              entity = response.getEntity();
>>              status = response.getStatusLine().getStatusCode();
>>              InputStream in = entity.getContent();
>>              for (int i = in.read(); i != -1; i = in.read()) {
>>                  buffer += (char) i;
>>              }
>>              in.close();
>>              if (entity != null) {
>>                  entity.consumeContent();
>>              }
>>
>>  or this
>>              HttpResponse response = client.execute(get);
>>              entity = response.getEntity();
>>              status = response.getStatusLine().getStatusCode();
>>              InputStream in = entity.getContent();
>>              Document document = getDocument(in);
>>              in.close();
>>              if (entity != null) {
>>                  entity.consumeContent();
>>              }
>>
>>  Christine
>>
>>  On Oct 26, 10:05 am, JamesB <[EMAIL PROTECTED]> wrote:
>>
>>  > I have been trying to get the content of a web page which just has
>>  > only a string on it.  I want to put the entire content of the page
>>  > into a variable so I can use it.  I found some code in another thread
>>  > and tried to use it, but it isnt working for me.
>  >
>>  > public String getPrice(String symbol) {
>>  >         DefaultHttpClient client = new DefaultHttpClient();
>>  >         HttpGet get = null;
>>  >         HttpResponse resp = null;
>>
>>  >         get = new HttpGet("http://oxavi.com/price.php";);
>>
>>  >         try {
>>  >                         resp = client.execute(get);
>>  >                 } catch (ClientProtocolException e) {
>>  >                         return "resp ParseException e";
>>  >                 } catch (IOException e) {
>>  >                         return "resp IOException e";
>>  >                 }
>>
>>  >         HttpEntity entity = resp.getEntity();
>>
>>  >                 try {
>>  >                         String price = EntityUtils.toString(entity);
>>  >                         return price;
>>  >                 } catch (ParseException e) {
>>  >                         return "EntityUtils ParseException e";
>>  >                 } catch (IOException e) {
>>  >                         return "EntityUtils IOException e";
>>  >                 }
>>  >         }
>>
>>  > When I run it the function returns 'resp IOException'.  I want it to
>>  > return '234.52', the entire content of the page.
>

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to