Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
MadStranger
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 6
#1

Android клиент передача XML сообщений - Android

16.10.2012, 19:04. Просмотров 1373. Ответов 9
Метки нет (Все метки)

Здравствуйте.

Имеется задача организовать общение приложения-клиента на Android с сервером посредством использования XML-сообщений. Опыта подобной разработки никогда не было, поэтому прошу простить если код на самом деле полная ересь.

Код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
try {
                    URL url1 = null;
                    url1 = new URL("http://mysite.ru/");
                    URLConnection urlc1 = url1.openConnection();
                    HttpURLConnection con1 = (HttpURLConnection) urlc1;
                    
                    con1.setRequestMethod("POST");
                    
                    con1.setUseCaches(false);
                    con1.setDoOutput(true);
                    con1.setDoInput(true);
                    con1.setRequestProperty("accept-charset", "UTF-8");
                    con1.setRequestProperty("content-type", "application/x-www-form-urlencoded");
                    
 
                    XmlSerializer ser1 = Xml.newSerializer();
                    StringWriter writer = new StringWriter();
                    ser1.setOutput(writer);
                    ser1.startDocument("UTF-8", true);              
                    ser1.startTag("", "request");
                    ser1.attribute("", "query", "open_session");
                    ser1.startTag("", "");
                    ser1.attribute("", "client", "name");
                    ser1.attribute("", "version", "1.0");
                    ser1.endTag("", "");
                    ser1.endTag("", "request");
                    ser1.endDocument();
                    
                    String query = writer.toString();   
                
                    con1.connect();
                    
                    OutputStreamWriter out1 = new OutputStreamWriter(con1.getOutputStream());  
                    out1.write(query);  
                    out1.flush();   
                    
                
                    String result1 = null;
                    BufferedReader br1 = new BufferedReader(new InputStreamReader(con1.getInputStream()));
                     StringBuffer sb = new StringBuffer();
                     String line;
                     while ((line = br1.readLine()) != null){
                         sb.append(line);
                         }
                     br1.close();
                     result1 = sb.toString();
                     
                    
                } catch (MalformedURLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
Выдает ошибку 302. Если убрать из кода три строки:
Java
1
2
3
OutputStreamWriter out1 = new OutputStreamWriter(con1.getOutputStream());  
                    out1.write(query);  
                    out1.flush();
то в ответ приходит правильный XML от сайта, ошибка "Неверный XML файл"(в нашем случае реальная причина - XML не был отправлен).

Можете подсказать решение проблемы? Или хотя бы указать на ошибки и ткнуть на необходимые мануалы.

Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.10.2012, 00:14     Android клиент передача XML сообщений #2
Цитата Сообщение от MadStranger Посмотреть сообщение
Выдает ошибку 302.
полный лог нужен.


Цитата Сообщение от MadStranger Посмотреть сообщение
то в ответ приходит правильный XML от сайта, ошибка "Неверный XML файл"(в нашем случае реальная причина - XML не был отправлен).
нифига не понял.

пермишены в манифесте прописаны?
MadStranger
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 6
17.10.2012, 02:15  [ТС]     Android клиент передача XML сообщений #3
Ошибка:
HTML5
1
<html><head><title>302 Found</title></head></body bg color="white"><center><h1>302 Found</h1></center><hr><center>nginx/1.0.0</center></body><html>
пермишен на интернет висит, должно быть еще что-то?

нифига не понял.
если убрать код, который отправляет XML, то в ответ приходит стандартный XML ответ от сервера, сообщающий, что прислан неправильный XML. То есть соединение с сервером работает, получение ответа тоже. А вот отправка XML - нет.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.10.2012, 03:06     Android клиент передача XML сообщений #4
тю, так это вовсе не ошибка кода, смотрите мануал к сервису.

Добавлено через 3 минуты
writer.toString() - а что тут вообще получается проверяли?

Добавлено через 3 минуты
Цитата Сообщение от MadStranger Посмотреть сообщение
http://mysite.ru/
это вы просто заменили или в коде так и написано? если так и написано, то проблема в том, что такого сайта нет.

Добавлено через 34 секунды
Цитата Сообщение от MadStranger Посмотреть сообщение
стандартный XML ответ от сервера
это какой?

Добавлено через 1 минуту
http://ru.wikipedia.org/wiki/HTTP_302#302
MadStranger
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 6
17.10.2012, 13:07  [ТС]     Android клиент передача XML сообщений #5
Если убираю код об отправке XML, то приходит стандартный ответ:
XML
1
2
3
4
5
<result success="false">
<error error-code="XML-01">
Неверный XML
</error>
</result>
Такой же должен быть, если бы у меня отправлялся битый XML, а у меня при отправке возвращается этот самый 302.
При верном XML ответ должен выглядеть следующим образом:
XML
1
2
3
<result success="true">
<session-info time-out="number" id="number" start="number"/>
</result>
Сайт в коде стоит мой, здесь просто поменял на mysite.ru

toString - просто перегонял в строку, у меня writer в формате StringWriter.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.10.2012, 23:19     Android клиент передача XML сообщений #6
может проблема на стороне сервера?
MadStranger
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 6
18.10.2012, 00:17  [ТС]     Android клиент передача XML сообщений #7
На сервере все нормально, клиенты с других платформ подключаются.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.10.2012, 00:32     Android клиент передача XML сообщений #8
Цитата Сообщение от MadStranger Посмотреть сообщение
toString - просто перегонял в строку
спрашиваю строка какая получается...


Цитата Сообщение от MadStranger Посмотреть сообщение
клиенты с других платформ подключаются.
может они другое сообщение отправляют, проверте что вы получаете на выходе и что отправляют другие клиенты.
MadStranger
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 6
19.10.2012, 19:08  [ТС]     Android клиент передача XML сообщений #9
строка

<?xml version='1.0' encoding='UTF-8' standalone='yes'?><request query="open_session"><client="name" version="1.0"/><request/>

соответственно ее и отправляю. На других клиентах проверить, к сожалению, нет возможности.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2012, 16:36     Android клиент передача XML сообщений
Еще ссылки по теме:

Клиент-серверное приложение android Android
Android Клиент-сервер приложение для android
Android Клиент-серверное приложение android
Android Клиент Android не коннектится к Серверу пк
Android Перенос кода клиент/сервера на Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
MadStranger
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 6
24.10.2012, 16:36  [ТС]     Android клиент передача XML сообщений #10
С переадресацией разобрался пообщавшись с админом сервера.

Теперь возникла другая проблема - согласно логам сервер не получает моих XML сообщений. Мне сказали использовать CGI переменную xml, но я не имею ни малейшего представления как, где и зачем ее использовать. Можете подсказать? Ну или хотя бы ткнуть носом в какой-нибудь мануал.
Yandex
Объявления
24.10.2012, 16:36     Android клиент передача XML сообщений
Ответ Создать тему
Опции темы

Текущее время: 02:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru