Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/19: Рейтинг темы: голосов - 19, средняя оценка - 4.89
4187 / 2294 / 387
Регистрация: 05.10.2013
Сообщений: 6,393
Записей в блоге: 177
1

Как получить ответ от ASP.NET на POST запрос?

21.01.2016, 21:25. Просмотров 3988. Ответов 8
Метки нет (Все метки)


Привет,

Ситуация такая. Я делаю небольшую игру на Unity - клон игры Lines. Мне хочется сделать базу данных на ASP.NET SQLite, чтобы там хранить общую таблицу рекордов в формате: Name, Score, Date А из игры посылать POST запросы на сохранение данных и запросы на получение данных из удалённой базы данных на ASP.NET SQLite.

Из своего приложения на Unity я могу отправлять POST запрос. Если сделать POST запрос на сервер на PHP, то работает нормально, то есть PHP сервер мне отвечает, если написать такой скрипт:

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
<?php
 
if (!empty($_POST["str"]))
{
    $str = $_POST["str"];
    echo "Ok, we get: ".$str;
}
else
{
   echo "Error: cannot get str";
}
Можно ли на ASP.NET написать ответ на POST запрос в виде "Hello World"?

Добавлено через 21 минуту
У меня была попытка сделать просто Response.Write, но в моё сторонее приложение от сервера ничего не приходит:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Respons.aspx.cs" Inherits="ScoresWeb.Respons" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <% Response.Write("Hello from aspx"); %>
    </div>
    </form>
</body>
</html>
Изучаю совсем недавно, поэтому не знаю как обрабатывать POST запросы. Может на ASP невозможно обратиться к скрипту не загрузив страницу, как это можно сделать на PHP?

Добавлено через 40 минут
Я решил проблему! Оказалось просто:

C#
1
2
3
4
5
        protected void Page_Load(object sender, EventArgs e)
        {
            string name = Request.Form["name"];
            Response.Write("Hello " + name);
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2016, 21:25
Ответы с готовыми решениями:

Как сделать GET и POST запрос и получить ответ
Каким образом можно сделать запрос (get и post) и получить данные (xml-страничка) при создании...

Post запрос получить ответ
Здравствуйте! Имеется POST-запрос, в браузере я получаю ответный Content-Lenght=36, в ответе Json...

Получить json в ответ на POST запрос
Никак не могу добиться получения json с помощью вывода его через echo в PHP скрипте. Если...

Отправить POST запрос и получить ответ
нужно послать запрос и получить результаты поиска со словом &quot;Hello&quot; static void Main(string args)...

8
2426 / 1879 / 340
Регистрация: 22.07.2011
Сообщений: 7,195
23.01.2016, 11:37 2
Лучший ответ Сообщение было отмечено 8Observer8 как решение

Решение

1. SqlLite не лучший выбор в связке с веб.приложением , в частности нет возможности асинхронной записи.
2. Если требуется только отправлять и получать данные , то aspx тут очевидно лишний , ибо представление никак не используется , в твоем случае нужно использовать веб.сервис , как вариант , на базе rest api.

З.Ы Написал просто для справки , лучше сразу делать правильно ).
1
4187 / 2294 / 387
Регистрация: 05.10.2013
Сообщений: 6,393
Записей в блоге: 177
23.01.2016, 11:56  [ТС] 3
Цитата Сообщение от sau Посмотреть сообщение
ибо представление никак не используется
Что такое представление? Просто я недавно начал изучать создание Web приложений на ASP

Добавлено через 57 секунд
Цитата Сообщение от sau Посмотреть сообщение
Если требуется только отправлять и получать данные , то aspx тут очевидно лишний
Мне нужно принимать данные, сохранять в базу данных и по требованию выдавать. А что лучше выбрать?

Добавлено через 5 минут
Цитата Сообщение от sau Посмотреть сообщение
в частности нет возможности асинхронной записи
Поясните, пожалуйста, в каком случае я могу столкнуться с проблемой и как она себя проявит?

Добавлено через 3 минуты
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Мне нужно принимать данные, сохранять в базу данных и по требованию выдавать. А что лучше выбрать?
Цитата Сообщение от sau Посмотреть сообщение
нужно использовать веб.сервис , как вариант , на базе rest api.
А вот же. Ну можно было ещё PHP и MySQL. Хорошо, я может посмотрю что за зверь.

Добавлено через 7 минут
Цитата Сообщение от sau Посмотреть сообщение
то aspx тут очевидно лишний , ибо представление никак не используется
Представление - это вывод на экран? В моём случае, web приложение будет отображать на сайте таблицу рекордов. Поэтому же не лишний?
0
2426 / 1879 / 340
Регистрация: 22.07.2011
Сообщений: 7,195
23.01.2016, 12:03 4
Лучший ответ Сообщение было отмечено 8Observer8 как решение

Решение

Цитата Сообщение от 8Observer8 Посмотреть сообщение
Что такое представление? Просто я недавно начал изучать создание Web приложений на ASP
- представление данных , в частности html разметка , собственно для этих целей aspx обработчик и задуман , при обращении к которому , происходит куча лишних операций , парсинг тэгов , обработка жизненного цикла , создается класс страницы и т.п. Есть более легковесные варианты , например ashx обработчики , но опять же , они не очень подходят для структурированной передачи данных. Правильней и удобнее в подобных сценариях использовать веб.сервисы , есть куча разных технологий работающих с разным транспортом и разными форматами передачи данных , которыми не буду грузить , но, один из самых простых вариантов работающих по http протоколу - rest сервисы , когда в простом формате можно получить и запросить данные. В рамках asp net технологии есть соответствующая имплементация
http://www.asp.net/web-api/ove... st-web-api
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Мне нужно принимать данные, сохранять в базу данных и по требованию выдавать. А что лучше выбрать?
Если цель просто хранить локальные данные , то для этого веб.сервис не нужен , можно просто хранить данные в XML формате с сериализацией/десериализацией обьектов , ну или , SqlCompact - мини БД для локальных нужд раз уж работаете на технологиях от MS , А вообще , если допустим все же веб.сервис , то он предполагает работу с множеством юзерей и ,соответственно , понадобится многопоточная поддержка доступа к данным , тут уже локальные БД не годятся, нужно что то посерьезнее , опять таки продукт от MS - MSSQL SERVER , в целом , к серверу БД можно подключится напрямую , без всяких там веб.сервисов , это уже вопрос архитектуры.

Добавлено через 2 минуты
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Представление - это вывод на экран? В моём случае, web приложение будет отображать на сайте таблицу рекордов. Поэтому же не лишний?
Веб приложение может содержать в себе различные точки доступа , как веб.сервис , так и различные представления. Важно просто правильно этим пользоваться . понятное дело что можно и через aspx запрашивать данные , но оно для других целей - вот ежели отобразить таблицу рекордов , там да , но ее будет запрашивать пользователь через браузер , это не одно и тоже.
1
4187 / 2294 / 387
Регистрация: 05.10.2013
Сообщений: 6,393
Записей в блоге: 177
23.01.2016, 12:22  [ТС] 5
sau, спасибо большое. Я понял, что нужно будет в будущем сделать правильно, чтобы если у меня будет много игроков, но пока я не могу на это отвлекаться. Так как я уже научился работать с SQLite. Вы можете добавить имя и очки по кнопке Insert, а далее нажать GetScores, чтобы получить, что храниться в базе данных: http://8observer8.cf/

Просто сейчас нужно распределить время и силы на саму игру (и ещё на несколько). Например, реализовать алгоритм поиска пути AStar. В оригинальной игре Lines используется алгоритм поиска пути для передвижения шариков. Временно пусть будет через SQLite, раз уж получилось. Мне нравится WebForms тем что довольно знакомо всё, как будто работаешь в WPF или в Qt с формошлёпкой. Да, потом, конечно, нужно нормально сделать. А пока, в свободное время, поизучаю какие технологии для чего лучше годятся.
0
63 / 63 / 13
Регистрация: 20.04.2010
Сообщений: 471
30.01.2016, 08:27 6
8Observer8,
Можно ли на ASP.NET написать ответ на POST запрос в виде "Hello World"?
Можно, добавляй папку Controllers в проект, далее добавляй контроллер в эту папку ,Добавить - Контроллер
Далее можешь выбрать Контроллер Web Api 2 пустой, либо с действиями чтения и записи. Во втором варианте уже готов для примера контроллер.
В папку App_Start добавляй класс WebApiConfig
И туда код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();
 
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{action}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
И в файл глобал asax :
C#
1
 GlobalConfiguration.Configure(WebApiConfig.Register);
И все, вперед в работу.
Если формат ответа нужен в JSON , подключи пакет Newtonsoft.Json.

Далее в контроллере например так :
C#
1
2
3
4
5
6
7
8
9
10
[HttpPost]
        public DataTable RHome()
        {
            string connectionString = "строкаподключениякбд";
            DataSet ds = new DataSet();
            string запрос = "SELECT [id] .....FROM .....";
            SqlDataAdapter da = new SqlDataAdapter(запрос, connectionString);
            da.Fill(ds);
            return ds.Tables[0];
        }
Доступ твойсайт/api/названиеконтроллера/RHome
П.С. Если научился работать с SQLite, точно так же и MSSQL.
1
4187 / 2294 / 387
Регистрация: 05.10.2013
Сообщений: 6,393
Записей в блоге: 177
30.01.2016, 11:46  [ТС] 7
Цитата Сообщение от rsotun Посмотреть сообщение
Можно, добавляй папку Controllers в проект, далее добавляй контроллер в эту папку ,Добавить - Контроллер
Правильно ли будет применять Контроллеры для WebForms приложения? Может их нужно применять только для MVC?
0
63 / 63 / 13
Регистрация: 20.04.2010
Сообщений: 471
30.01.2016, 12:13 8
8Observer8, Не то что правильно...я бы сказал АРХИправильно!Ибо разницы нет(MVC или WebForms).
1
1 / 1 / 0
Регистрация: 03.03.2016
Сообщений: 23
23.03.2016, 07:39 9
Цитата Сообщение от rsotun Посмотреть сообщение
И туда код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
*public static class WebApiConfig
* * {
* * * * public static void Register(HttpConfiguration config)
* * * * {
* * * * * * config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
* * * * * * * * name: "DefaultApi",
* * * * * * * * routeTemplate: "api/{controller}/{action}/{id}",
* * * * * * * * defaults: new { id = RouteParameter.Optional }
* * * * * * );
* * * * }
* * }
config.MapHttpAttributeRoutes(); - выделяет красным и ругается что Cannot resolve sembol 'MapHttpAttributeRoutes' чем может быть вызвано?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2016, 07:39

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

POST запрос и ASP.NET страница
Доброго времени суток, нужно отправить пост запрос на страницу, но вот беда, как можно получить...

Получить ответ compressed/chunked на POST запрос
Приветствую. Мне нужно в цикле узнавать ответ на POST запрос, и в зависимости от этого ответа...

Как отправить на сервер xml запрос с помощью post и получить ответ в xml?
нужно отправить на сервер xml запрос с помощью post и получить ответ в xml, погуглил нашел примеры,...

Post запрос в ASP.NET application (не mvc) посредством JS к *.aspx
Добрый вечер... Каким образом организовать post запрос в ASP.NET application (не mvc)...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.