Форум программистов, компьютерный форум, киберфорум
C#: Веб-сервисы и WCF
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
3 / 3 / 0
Регистрация: 22.09.2010
Сообщений: 18
1

REST-сервис синхронизации устройства с данными

23.11.2011, 14:07. Показов 3178. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача стоит следующая:
Есть клиент, он загружает XML файл с помощью FileUpload и вводит UDID устройства в TextBox
далее нужно в теле POST запроса отослать данный файл на сервер, при этом UDID устройства передается в QueryString строки запроса

Вопрос номер 1: Каким образом нужно передать xml файл в теле POST запроса, что бы потом его можно было обработать на сервере???
C#
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
protected void Button2_Click(object sender, EventArgs e)
        {
            if (!Page.IsValid) return;
            //Загрузка XML файла______________________________________________              
            Boolean fileOK = false;
            String path = Server.MapPath("~/UploadedXML/");
            TextBox2.Text = "";
            if (FileUpload1.HasFile)
            {
                String fileExtension =
                    System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
 
                if (fileExtension == ".xml")
                {
                    fileOK = true;
                }
            }
            
            if (fileOK)
            {
                try
                {
                    FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);
                    Label1.Text = "Файл загружен.";
                }
                catch (Exception ex)
                {
                    Label1.Text = "Файл не загружен.";
                    return;
                }
            }
            else
            {
                Label1.Text = "Файл либо не загружен либо имеет неверный тип.";
                return;
            }
            XmlDocument xml_input = new XmlDocument();
            try
            {
                xml_input.Load(path + FileUpload1.FileName);
            }
            catch (Exception ex)
            {
                Label1.Text = "Проверьте XML файл и загрузите его снова.";
                return;
            }
            if (xml_input.DocumentElement.Name == "Synchronization")
            {
                if (xml_input.DocumentElement.Attributes["UDID"] != null)
                {
                    string udid = xml_input.DocumentElement.Attributes["UDID"].InnerText;
                    if (TextBox1.Text != udid)
                    {
                        Label1.Text = "Поле UDID и UDID XML файла не совпадают.";
                        return;
                    }
                }
                else
                {
                    Label1.Text = "Проверьте XML файл и загрузите его снова.";
                    return;
                }
                    
            }
            else
            {
                Label1.Text = "Проверьте XML файл и загрузите его снова.";
                return;
            }
 
            //Крнец загрузки XML файла______________________________________________
            string serv_address = Server.MapPath("~/");
            string request_address_mod = path + FileUpload1.FileName;
            //Отрравка_POST_запроса____________________________________
 
            
            // Создаем веб запрос
            WebRequest reqPOST = WebRequest.Create("http://localhost:5704/Sample.sample?udid=user1");
            // Устанавливаем метод
            reqPOST.Method = WebRequestMethods.Http.Post;
            // Устанавливаем тип контента
            reqPOST.ContentType = "multipart/form-data";
    
            HttpPostedFile user_file = FileUpload1.PostedFile;
            //
            //Вопрос номер 1: Каким образом нужно передать xml файл в теле POST запроса ??????
            // Что бы потом его можно было обработать на сервере???
            // Отправляем файл
            //System.IO.Stream sendStream = reqPOST.GetRequestStream();
            //sendStream = user_file.InputStream;// Write(bImgSendData, 0, bImgSendData.Length);
            //sendStream.Close();
            
 
 
            // Получаем ответ с сервера
            System.Net.WebResponse resp = reqPOST.GetResponse();
            System.IO.Stream stream = resp.GetResponseStream();
            System.IO.StreamReader sr = new System.IO.StreamReader(stream);
 
            string s = sr.ReadToEnd();
            resp.Close();
            stream.Close();
            Label1.Text = s;
            
           //________________________________________________________
        }

На сервере нужно есть обработчик (я не в курсе того какой нужно использовать обработчик, синхронный или асинхронный) к примеру синхронный. Должен принять файл, совершить некоторый действия и отправить клиенту ответный XML файл

Тогда вопрос номер 2: Как корректно принять файл и отправить ответный????

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class HelloWorldHandler : IHttpHandler
    {
 
        public HelloWorldHandler()
        {
        }
        public void ProcessRequest(HttpContext context)
        {
            HttpRequest Request = context.Request;
            HttpResponse Response = context.Response;
 
            Response.Write("<html>");
            Response.Write("<body>");
 
            // Как корректно принять файл и отправить ответный????
 
            Response.Write("<h1> Hello from a synchronous custom HTTP handler. </h1>");
            Response.Write("</body>");
            Response.Write("</html>");
        }

ПРошу не судите меня строго за глупость вопросов, я в этом деле новичок и делаю нечто подобное в первый раз. Над данной задачей я бьюсь не слезая уже несколько суток... проблема в большой степени в том, что в интернете обсуждаю клиент и сервер отдельно... на форумах выкладываются тонны кусков трудно читаемого кода... который потом совершенно не ясно как объеденить для использования...

Буду очень признателен если ктонибудь даст одекватные рекомендации.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2011, 14:07
Ответы с готовыми решениями:

REST сервис на JAVA
Собственно вот в чём вопрос. Делаю умный дом, и возник вопрос. Какая технология для REST сервиса на...

Сервис с методами SOAP и REST
Написать веб-сервис, который принимает строку и возвращает кол-во слов и символов. 2 метода в...

Spring Boot REST сервис
Создаю в учебных целях REST сервис и постоянно возникают различные вопросы, каждый раз создавать...

REST-сервис с двумя очередями
Коллеги, добрый день! прошу сильно не пинать. Только изучаю азы и стоит следующая задача, прошу...

2
196 / 188 / 15
Регистрация: 09.02.2011
Сообщений: 457
22.12.2011, 14:37 2
Думаю надо использовать SOAP
0
CEO
Эксперт С++
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
25.12.2011, 21:06 3
-Sky-, глупо как-то используя REST передавать XML файл))) Никак нельзя отдельными полями и собрать на стороне сервиса?

Добавлено через 2 минуты
И если можно структуру XML в студию - есть еще 1 вариант
0
25.12.2011, 21:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2011, 21:06
Помогаю со студенческими работами здесь

Как реализовать такой rest сервис?
Решил реализовать такой сервис: 1) Реализовать асинхронный сервис, который принимает rest...

REST-сервис возвращает неправильную информацию
Есть REST-сервис, сделанный на .NET Core. Сервер работает с БД через EF и возвращает Json'ы....

Метод Post - rest сервис, как достать данные?
Здравствуйте , мне нужна помощь или хоть совет/ссылка по теме . Задача заключается в следующем: я...

Как создать сервис, который в указаное время отсылал бы почту с данными из SQL
Добрый день. Может кто сталкивался. Нужно создать автоматическую рассылку писем с данными из...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru