Intereting Posts
Android: Как переопределить onBackPressed () в AlertDialog? SetRequestedOrientation перед показом ProgressDialog приводит к сбою RxJava и случайные спорадические события на Android Как я могу выровнять изображение внутри ImageView в нижней части ImageView? Эмулятор Android Studio не поставляется с Play Store для API 23 Android поддерживает все планшеты – классифицирует чертежи и макеты Можно ли смоделировать GCM-получение из командной строки adb shell / am? Я получаю сообщение об ошибке Как удалить всех слушателей, добавленных с помощью addTextChangedListener Как показать маркеры все время с помощью AsyncTask или Handler в google map version 2 Универсальный загрузчик изображений не может загружать изображения иногда Proguard с OrmLite на Android R.drawable не может разрешить изображение Шаблон дизайна, чтобы избежать множественных ifs Разработка приложений для Android без устройства Android Android WebView – настройка фокуса фокуса HTML с использованием Javascript

HTTP-запрос для файла XML

Я пытаюсь использовать Flurry Analytics для своей программы на Android, и мне не удается получить сам файл xml с сервера.

Я приближаюсь, потому что в теге Log Cat System.out я могу получить половину его по какой-то причине, и он говорит: «XML Passing Exception = java.net.MalformedURLException: протокол не найден:? Xml version = 1.0 encoding =" UTF -8 "и т. Д. … примерно до половины пути через мой XML-код. Не уверен, что я делаю неправильно, я отправляю HTTP-сообщение с заголовком, требующим принять приложение / xml, и он не работает должным образом. Оценивается!

try { //HttpResponse response = client.execute(post); //HttpEntity r_entity = response.getEntity(); //String xmlString = EntityUtils.toString(r_entity); HttpClient client = new DefaultHttpClient(); String URL = "http://api.flurry.com/eventMetrics/Event?apiAccessCode=YHJBA13CSKTMS6XHTM6M&apiKey=6XQY729FDU1CR9FKXVZP&startDate=2011-2-28&endDate=2011-3-1&eventName=Tip%20Calculated"; HttpGet get = new HttpGet(URL); get.addHeader("Accept", "application/xml"); get.addHeader("Content-Type", "application/xml"); HttpResponse responsePost = client.execute(get); HttpEntity resEntity = responsePost.getEntity(); if (resEntity != null) { System.out.println("Not null!"); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); String responseXml = EntityUtils.toString(responsePost.getEntity()); Document doc = db.parse(responseXml); doc.getDocumentElement().normalize(); NodeList nodeList = doc.getElementsByTagName("eventMetrics"); for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); Element fstElmnt = (Element) node; NodeList nameList = fstElmnt.getElementsByTagName("day"); Element dayElement = (Element) nameList.item(0); nameList = dayElement.getChildNodes(); countString = dayElement.getAttribute("totalCount"); System.out.println(countString); count = Integer.parseInt(countString); System.out.println(count); count += count; } } } catch (Exception e) { System.out.println("XML Passing Exception = " + e); } 

Solutions Collecting From Web of "HTTP-запрос для файла XML"

Метод parse, который принимает строку, предназначен для формата URL. Вам необходимо обернуть String в StringReader, прежде чем разбирать его. Еще лучше, если вы можете захватить XML как InputStream и проанализировать это, что-то вроде:

 String uri = "http://api.flurry.com/eventMetrics/Event?apiAccessCode=YHJBA13CSKTMS6XHTM6M&apiKey=6XQY729FDU1CR9FKXVZP&startDate=2011-2-28&endDate=2011-3-1&eventName=Tip%20Calculated"; URL url = new URL(uri); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setRequestProperty("Accept", "application/xml"); InputStream xml = connection.getInputStream(); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(xml);