Коллеги, привет!
При передачи выполнить 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
Комментарии доступны только авторизированным пользователям