2015-12-20 2 views
0

Я пытаюсь получить данные JSON из URL-адреса, и я проверил URL-адрес через мой браузер, он показывает мне действительные данные JSON, в то время как если я сделаю то же самое, я получаю следующую ошибку :Недопустимый символ в запросе в URL-соединении

Illegal character in query at index 47: http://bangladeshelections.org/candidate?where={ 

индекс 47 - первые скобки после того, где.

Я попытался следующий код, чтобы получить URL-адрес

здесь значение является массивом из предыдущей деятельности.

 District = value[0]; 
     Municipality = value[1]; 
     Type = value[2]; 
     Ward = value[3]; 
     url_all_products = url_all_products + "District\":\""+District+"\",\"Municipality\":\""+ 
       Municipality+"\",\"Type\":\""+Type+"\",\"Ward\":\""+Ward+"\"}"; 
     Log.i("Monkey", url_all_products.charAt(47) + "bulls"); 
     new LoadAllProducts(getApplicationContext()).execute(); 

Следующий код являюсь я использую, чтобы получить данные в формате JSON в теме асинхронного

URL url = new URL(url_all_products); 
      HttpClient client = new DefaultHttpClient(); 
      HttpGet request = new HttpGet(); 
      request.setURI(new URI(url_all_products)); 
      HttpResponse response = client.execute(request); 
      BufferedReader in = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); 

      StringBuffer sb = new StringBuffer(""); 
      String line=""; 

      while ((line = in.readLine()) != null) { 
       sb.append(line); 
       break; 
      } 
      in.close(); 
      return sb.toString(); 

Спасибо.

+0

То есть недопустимые символы в строке запроса. URLEncode строка запроса. – pvg

+0

@pvg как это сделать? нужна помощь ... –

ответ

0

В строке запроса используются недопустимые символы. Самый простой способ избежать этого без внешних библиотек - использовать java.net.URI для создания вашего URL-адреса из его компонентов. Он включает конструктор, который принимает строку запроса и будет выполнять правильную кодировку для вас. Например, чтобы закодировать:

http://host.com/path?query=queryparam#fragment

new URI("http", "host.com", "/path/", "query=queryparam", "fragment").toURL();

Смотрите документацию на

http://docs.oracle.com/javase/6/docs/api/java/net/URI.html

+0

Но я использовал Java URI !!! –

+0

нет, вы используете URL-адрес и строите все, просто добавляя строки вместе. 'java.net.URI' - это другой класс. – pvg

+0

Не могли бы вы привести пример с такой ситуацией? Извините, но я не понял, как это сделать. Некоторое время я застрял. –

Смежные вопросы