Меню

Ошибка http при обращении к серверу server returned nothing no headers no data

Коллеги, привет!

При передачи выполнить POST запрос  вываливаюсь в исключение с описанием «Ошибка работы с Интернет: Server returned nothing (no headers, no data)»

Попытка

    ОтветСайта = КэшНастроекСоединения.СоединениеКонтур.ОтправитьДляОбработки(Запрос);

Исключение

    Сообщить(ОписаниеОшибки());

КонецПопытки;

Этот же самый запрос отправленный с postman проходит нормально и возвращает код ответа 200.

Попробовал посмотреть через Fiddler, тогда запрос с 1с проходит, но все равно с ошибкой — «[Fiddler] ReadResponse() failed: The server did not return a complete response for this request. Server returned 0 bytes.» Визуально запросы в фидлере что с postman, что с 1с одинаковые (хотя может не знаю что искать) за исключение User-Agent.

С этим же соединением другие запросы (get, post) из 1с к данному серверу проходят нормально, именно с последним (недавно созданным) такая проблема.

Подскажите, куда копать и какой порядок действий нужен, что бы выявить и исправить ошибку? Разработчики API говорят, раз с Postman все хорошо — проблема на стороне 1С, а не на их стороне (в чем я не уверен).

Hi there,

I’m getting an error System.Net.Http.CurlException: Server returned nothing (no headers, no data) when calling a https endpoint in .NET Core 1.1.2 only on Docker Container.

Currently, it works on Windows running via Visual Studio, but it doesn’t work inside my Linux Container.

**As part of my customer environment, I have to add their CA certificates in our containers but it still doesn’t work.

Please, could you someone highlight any issue with my approach?

The details are below:

My docker file is —

FROM microsoft/aspnetcore:1.1.2

ADD /CA.crt /usr/local/share/ca-certificates/CA.crt
RUN chmod 777 /usr/local/share/ca-certificates/CA.crt

RUN apt-get update && apt-get install -y apt-transport-https ca-certificates
RUN update-ca-certificates
............

Code example:

var clientCertificate = new X509Certificate2("Certificates/my-certificate.pfx", "password");

var handler = new HttpClientHandler();

handler.ClientCertificateOptions = ClientCertificateOption.Manual;
handler.SslProtocols = SslProtocols.Tls12;
handler.ClientCertificates.Add(clientCertificate);

var httpClient = new HttpClient(handler);
httpClient.DefaultRequestHeaders.Add("Authorization", "Basic XPTO");

var response = await http.SendAsync(request);

Exception:

System.Net.Http.CurlException: Server returned nothing (no headers, no data)
app_1  |    at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error)
app_1  |    at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult)

File Info for HttpClient:

app_1  | [16:13:20 DBG] File:             /usr/share/dotnet/shared/Microsoft.NETCore.App/1.1.2/System.Private.CoreLib.ni.dll
app_1  | InternalName:     System.Private.CoreLib.ni.dll
app_1  | OriginalFilename: System.Private.CoreLib.ni.dll
app_1  | FileVersion:      4.6.25211.01
app_1  | FileDescription:  System.Private.CoreLib
app_1  | Product:          Microsoft/x00ae .NET Framework
app_1  | ProductVersion:   4.6.25211.01. Commit Hash: 7a35adb1a68baa02f542ed06b5d7a1b9167f32fb
app_1  | Debug:            False
app_1  | Patched:          False
app_1  | PreRelease:       False
app_1  | PrivateBuild:     False
app_1  | SpecialBuild:     False
app_1  | Language:         Language Neutral
app_1  |
app_1  | [16:13:20 DBG] File:             /usr/share/dotnet/shared/Microsoft.NETCore.App/1.1.2/System.Net.Http.dll
app_1  | InternalName:     System.Net.Http.dll
app_1  | OriginalFilename: System.Net.Http.dll
app_1  | FileVersion:      4.6.25220.01
app_1  | FileDescription:  System.Net.Http
app_1  | Product:          Microsoft® .NET Framework
app_1  | ProductVersion:   4.6.25220.01. Commit Hash: 936d52df0532d56a19ff8486bc9aa7eac19860b3
app_1  | Debug:            False
app_1  | Patched:          False
app_1  | PreRelease:       False
app_1  | PrivateBuild:     False
app_1  | SpecialBuild:     False
app_1  | Language:         Language Neutral

[EDIT] Add C# syntax highlighting by @karelz

Добрый день. Есть запрос на простую страницу php. Возникает ошибка : по причине: Ошибка работы с Интернет:  Server returned nothing (no headers, no data) Если изменить строку Заголовки.Вставить(«Content-Length»,СтрДлина(СтрокаОтправки)+2); Пакет уходит, но страница сообщает что пришли данные: «.AAAAA=BBBBB» хотя точки нет в коде. WireShark — следующий пакет …AAAAA=BBBBB HTTP/1.1 200 OK Date: Wed, 29 Oct 2014 06:57:00 GMT Видно что 1С шлет данные с … Что не так? Или нельзя отправлять данные таким методом, нужно в любом случае отправлять через файл а файл на сервере получать и разбирать.

Все штатно: если кодировка UTF-8, то в начале контента *принудительно* записывается BOM

Странно, он тело вроде записывает из строки. Это при записи в файл записывается BOM. Какое шестнадцатеричное представление этой точки?

Действительно, указав кодировку к примеру «windows-1251», скрипт принял без проблем запрос. Спасибо.

И еще, может кому то понадобится — получить ответ от скрипта, достаточно прописать в скрипте обычное «echo ‘Текст'», а на стороне 1С  — что бы получить строчку — следующее второй строчкой и будет ответ от скрипта. Еще раз спасибо.

Это известная проблема, как минимум, с июня прошлого года. В ближайших релизах 8.3 обещались исправить.

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка http при обращении к серверу https localhost удаленный узел не прошел проверку
  • Ошибка hold мазда бонго френди