powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / tcpListener.AcceptTcpClient() не срабатывает при POST запросе
6 сообщений из 6, страница 1 из 1
tcpListener.AcceptTcpClient() не срабатывает при POST запросе
    #40039595
Коллеги, тапками не кидайтесь - я в web не понимаю вообще ничего.

Дано:

Самописный "htpp-сервер" на c# - без ASP.NET, самый простой на базе tcpListener. Он слушает определенный порт, приняли соединение клиента, получили поток, распарсили, поняли чего хочет клиент, ответили в поток клиента, закрыли соединение.

Есть страница генерируемая этим самым "сервером".Для отладки все запущено на localhost

На ней в таблице кнопка, по кнопке собираются данные с реквизитов страницы (и самой кнопки) в json, формируется fetch и отправляется для обработки на этот самый сервер. Но запрос не достигает сервера, т.е. метод AcceptTcpClient() не вызывается. Если смотреть в консоли хрома - fetch в состоянии "pending" и "caution request is not finished yet".

.............

Код: html
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.
<table border="1">
   <tr>
    <th>Заголовок</th>
      ...
    <th>Статус</th>
   </tr>
   <tr><td>....<td><button type="button" onclick="button_click(this)" data-setting-id="1">Получить</button></td>....</tr>
  </table>
 <script>
 			async function button_click(clicked_object)
			{
				
				let data = {
					settingId: clicked_object.getAttribute('data-setting-id'),
					dateBegin: document.getElementById('calendar1').value,
					dateEnd: document.getElementById('calendar2').value
					};

				let response = await fetch('http://127.0.0.1:9090/foo.html', {
					method: 'POST', 
					headers: {'Content-Type': 'application/json'},
					body: JSON.stringify(data)
				});

				alert(response.status);

			}
 </script>
</body>
</html>


Модератор: Учимся использовать тэги оформления кода - FAQ
Поставил Postman повторяю post запрос из него на тот же ресурс. tcpListener.AcceptTcpClient() срабатывает сразу только если post запрос вообще без "body" или параметры переданы через "multipart/form-data", если в Postman указать "raw-json" -> "application/json" (или raw-text - по сути не важно) - то отсылка запроса через Postman тоже "зависает" пока не сваливается по таймауту или я вручную не отменю запрос в Postman - только тогда tcpListener.AcceptTcpClient() срабатывает

Что я не так делаю?
...
Рейтинг: 0 / 0
tcpListener.AcceptTcpClient() не срабатывает при POST запросе
    #40039597
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сама страничка с этим html-ом как открыта? С этого же сервера http://127.0.0.1:9090 или с другого?
Если с другого или, скажем, это локальный файл - кури CORS
...
Рейтинг: 0 / 0
tcpListener.AcceptTcpClient() не срабатывает при POST запросе
    #40039598
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неистовый Служитель Культа
Если смотреть в консоли хрома - fetch в состоянии "pending" и "caution request is not finished yet".
Проверь метод в консоли хрома - POST или OPTIONS ?
...
Рейтинг: 0 / 0
tcpListener.AcceptTcpClient() не срабатывает при POST запросе
    #40039600
Shocker.Pro
Неистовый Служитель Культа
Если смотреть в консоли хрома - fetch в состоянии "pending" и "caution request is not finished yet".
Проверь метод в консоли хрома - POST или OPTIONS ?


POST
...
Рейтинг: 0 / 0
tcpListener.AcceptTcpClient() не срабатывает при POST запросе
    #40039601
Shocker.Pro
Сама страничка с этим html-ом как открыта? С этого же сервера http://127.0.0.1:9090 или с другого?
Если с другого или, скажем, это локальный файл - кури CORS


с этого же. все в пределах одного хоста
...
Рейтинг: 0 / 0
tcpListener.AcceptTcpClient() не срабатывает при POST запросе
    #40039604
Неистовый Служитель Культа
Shocker.Pro
пропущено...
Проверь метод в консоли хрома - POST или OPTIONS ?


POST


+
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public void Start()
        {
            new Thread(x => { Run(); }).Start();
        }

        private void Run()
        {
            tcpListener.Start();
            isRuning = true;

            while (isRuning)
            {
                    TcpClient client = tcpListener.AcceptTcpClient();
                    ClientProcessing(client); 
                    client.Close();
            }
        }



внутри ClientProcessing(client); стоит точка остановки - если бы на порт что-то пришло то я бы в VS увидел бы. GET приходит, а POST - как-"то выборочно"
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / tcpListener.AcceptTcpClient() не срабатывает при POST запросе
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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