private String getStringData2(List<BasicNameValuePair> pairs) throws IOException { String content = null; HttpURLConnection conn = (HttpURLConnection) mUrl.openConnection(); if (!Utility.isWifi(MyApplication.getInstance())) { mConnectionTimeout = CONNECTION_TIMEOUT_GPRS; mSocketTimeout = SOCKET_TIMEOUT_GPRS; } conn.setConnectTimeout(mConnectionTimeout); conn.setReadTimeout(mSocketTimeout); conn.setDoOutput(true); if (pairs != null) { conn.setRequestMethod("POST"); for (int i = 0; i < pairs.size(); ++i) { content += pairs.get(i).getName() + "=" + pairs.get(i).getValue(); if (i != pairs.size() - 1) // Not the last content += "&"; } } else conn.setRequestMethod("GET"); Iterator<Entry<String, String>> iter = mExtraHeaders.entrySet().iterator(); while (iter.hasNext()) { Map.Entry<String, String> entry = iter.next(); String key = entry.getKey(); String value = entry.getValue(); conn.addRequestProperty(key, value); } conn.connect(); if (content != null) { DataOutputStream out = new DataOutputStream(conn.getOutputStream()); out.writeBytes(content); out.flush(); out.close(); } mReponseHeaders = conn.getHeaderFields(); String line; StringBuilder sb = new StringBuilder(); BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } return sb.toString(); }
public String getStringData(List<BasicNameValuePair> pairs, String charset) { if (mUrl == null) { return null; } if (Utility.isNetworkAvailable() == false) { return null; } if (!Utility.isWifi(MyApplication.getInstance())) { mConnectionTimeout = CONNECTION_TIMEOUT_GPRS; mSocketTimeout = SOCKET_TIMEOUT_GPRS; } HttpParams httpParameters = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParameters, mConnectionTimeout); HttpConnectionParams.setSoTimeout(httpParameters, mSocketTimeout); HttpClient client = new DefaultHttpClient(httpParameters); HttpResponse response = null; HttpEntity entity = null; String recvData = null; try { // POST if (pairs != null) { HttpPost post = new HttpPost(mUrl.toString()); post.setEntity(new UrlEncodedFormEntity(pairs, HTTP.UTF_8)); Iterator<Entry<String, String>> iter = mExtraHeaders.entrySet().iterator(); while (iter.hasNext()) { Map.Entry<String, String> entry = iter.next(); String key = entry.getKey(); String value = entry.getValue(); post.setHeader(key, value); } response = client.execute(post); } // GET else { HttpGet get = new HttpGet(mUrl.toString()); Iterator<Entry<String, String>> iter = mExtraHeaders.entrySet().iterator(); while (iter.hasNext()) { Map.Entry<String, String> entry = iter.next(); String key = entry.getKey(); String value = entry.getValue(); get.setHeader(key, value); } response = client.execute(get); } if (response == null) { Log.e("Error", "Response Null"); client.getConnectionManager().shutdown(); return null; } if (response.getStatusLine().getStatusCode() != 200) { Log.e("Error", "Status code = %d" + response.getStatusLine().getStatusCode()); client.getConnectionManager().shutdown(); return null; } mResponse = response; entity = response.getEntity(); if (entity == null) { Log.e("Error", "Status code = %d" + response.getStatusLine().getStatusCode()); client.getConnectionManager().shutdown(); return null; } InputStream is = entity.getContent(); if (entity.getContentEncoding() != null && entity.getContentEncoding().getValue().toLowerCase(Locale.ENGLISH).contains("gzip")) { is = new GZIPInputStream(is); } String line; StringBuilder sb = new StringBuilder(); BufferedReader reader; if (charset != null && !charset.equals("")) reader = new BufferedReader(new InputStreamReader(is, charset)); else reader = new BufferedReader(new InputStreamReader(is)); while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } recvData = sb.toString(); if (recvData == null) { Log.e("Error", "Receive Null"); client.getConnectionManager().shutdown(); return null; } client.getConnectionManager().shutdown(); } catch (UnsupportedEncodingException e1) { Log.e("Exception", "Set name pair failed!"); // e1.printStackTrace(); client.getConnectionManager().shutdown(); return null; } catch (ClientProtocolException e) { Log.e("Exception", "Exec post protocol failed!"); // e.printStackTrace(); client.getConnectionManager().shutdown(); return null; } catch (IOException e) { Log.e("Exception", "Exec post IO failed!"); // e.printStackTrace(); client.getConnectionManager().shutdown(); return null; } catch (ParseException e) { Log.e("Error", "Entity parse failed"); // e.printStackTrace(); client.getConnectionManager().shutdown(); return null; } return recvData; // String recvData; // try // { // recvData = getStringData2(pairs); // } // catch (IOException e) // { // e.printStackTrace(); // return null; // } // return recvData; }