powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / HttpHandler и Content-Type: "application/json"
6 сообщений из 6, страница 1 из 1
HttpHandler и Content-Type: "application/json"
    #37609587
newbie3732
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Как автоматом получить JSON в обработчике? Его можно получить только так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
using System.Web;
using System.IO;
using System.Text;

namespace Test
{
    public class MyHttpHandler : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            context.Request.InputStream.Seek(0, SeekOrigin.Begin);
            StreamReader StreamReader = new StreamReader(context.Request.InputStream, Encoding.UTF8);
            string JSON = StreamReader.ReadToEnd().Trim();
        }

        public bool IsReusable
        {
            get { return false; }
        }
    }
}


Web.config
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />

    <authentication mode="Windows" />

    <httpHandlers>
      <add verb="*" path="MyHttpHandler.aspx" type="Test.MyHttpHandler, Test"/>
    </httpHandlers>

  </system.web>

  <system.webServer>
     <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>



2. Как потом можно из строки преобразовать в объект?
...
Рейтинг: 0 / 0
HttpHandler и Content-Type: "application/json"
    #37610367
brainproof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) про автоматом не знаю, сори
2) как вариант JsonConvert.DeserializeObject( ) из Newtonsoft.Json либ другая библа
...
Рейтинг: 0 / 0
HttpHandler и Content-Type: "application/json"
    #37610766
newbie3732
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
brainproof1) про автоматом не знаю, сори
2) как вариант JsonConvert.DeserializeObject( ) из Newtonsoft.Json либ другая библа
1) похоже что никто не знает неужели так и прийдется самому из потока читать?
2) с этим проблем нет JavaScriptSerializer
...
Рейтинг: 0 / 0
HttpHandler и Content-Type: "application/json"
    #37610864
newbie3732
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел Retrieve JSON data from Request.InputStream 2009-го года The function SaveMyData retrieves the JSON data by reading the InputStream from the Request object, as shown below:
Код: c#
1.
2.
3.
System.IO.StreamReader sr = new  System.IO.StreamReader(Request.InputStream);
string line = "";
line = sr.ReadToEnd();

похоже с тех времен ничего таки и не изменилось
...
Рейтинг: 0 / 0
HttpHandler и Content-Type: "application/json"
    #37611741
newbie3732
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
похоже и в php те же проблемы строки 32-36
Код: php
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.
08	    protected function parseRequest() {
09	        if ($this->method == 'PUT') {
10	            $raw  = '';
11	            $httpContent = fopen('php://input', 'r');
12	            while ($kb = fread($httpContent, 1024)) {
13	                $raw .= $kb;
14	            }
15	            fclose($httpContent);
16	            $params = array();
17	            parse_str($raw, $params);
18	 
19	            if (isset($params['data'])) {
20	                $this->params =  json_decode(stripslashes($params['data']));
21	            } else {
22	                $params = json_decode(stripslashes($raw));
23	                $this->params = $params->data;
24	            }
25	        } else {
26	            // grab JSON data if there...
27	            $this->params = (isset($_REQUEST['data'])) ? json_decode(stripslashes($_REQUEST['data'])) : null;
28	 
29	            if (isset($_REQUEST['data'])) {
30	                $this->params =  json_decode(stripslashes($_REQUEST['data']));
31	            } else {
32	                $raw  = '';
33	                $httpContent = fopen('php://input', 'r');
34	                while ($kb = fread($httpContent, 1024)) {
35	                    $raw .= $kb;
36	                }
37	                $params = json_decode(stripslashes($raw));
38	                $this->params = $params->data;
39	            }
40	        }


получается никто не умеет сразу?
...
Рейтинг: 0 / 0
HttpHandler и Content-Type: "application/json"
    #37615399
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм... WebServices? прост при работе с аяксом (не через апдейтпанель) я приедпочитаю именно веб-сервисы. там редко возникают проблемы с JSON (хотя не отрицаю - бывали)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / HttpHandler и Content-Type: "application/json"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]