Я хочу выполнить HttpPost на Raspberry с помощью Mono + Restsharp.
Вызов Httpie, который я пытаюсь воспроизвести в коде, выглядит примерно так:
http POST https://XXXXX.azurewebsites.net/api/report key=value
Это код C #:
RestClient nodeRed = new RestClient("http://XXXXX.azurewebsites.net/");
var request = new RestRequest("api/report", Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddBody(new { Timestamp = DateTime.Now, Data = "Test" });
request.Timeout = 5000;
var response = nodeRed.Execute(request);
Код работает нормально, просто не работает. Ответ не содержит никакого содержимого (ответ сервера с «Успех» на httpie / MS .NET Framework).
Я уже узнал о сертификатах на Mono. Бег
sudo certmgr -ssl -v -m "https://XXXXX.azurewebsites.net"
Сообщает мне, что он добавляет два сертификата в первый раз. Повторный запуск снова добавляет первый сертификат (и снова), как будто он не работает.
Сертификат X.509 v3 Выдан из: C = IE, O = Baltimore, OU = CyberTrust, CN = Baltimore CyberTrust Root Выдан в: C = США, S = Вашингтон, L = Редмонд, O = Microsoft Corporation, OU = Microsoft IT, CN = Microsoft IT SSL SHA2 Срок действия: 19.12.2013 20:07:32 Действительно до: 19.12.2017 20:06:55 ВНИМАНИЕ: подпись сертификата НЕПРАВИЛЬНА Импортировать этот сертификат в хранилище CA?
Если я подтверждаю и повторяю импорт, certmgr просит меня импортировать снова. Как я могу заставить http-сообщение работать?
3 ответа
Вы можете попробовать игнорировать сертификаты с этим
ServicePointManager.ServerCertificateValidationCallback = (s, cert, chain, ssl) => true;
Обновить
как я вижу здесь существует также на Mono
У него должно быть какое-то соединение с Mono. По умолчанию не доверяет никаким SSL-сертификатам ... хорошо проверьте эту статью http://www.mono-project.com/docs/faq / security / https://github.com/restsharp/RestSharp/issues/728 < / а> https://github.com/dotnet/roslyn/issues/7422
Или Вам нужно использовать openssl для анализа сертификата:
openssl s_client -showcerts -connect www.domain.com:443
openssl x509 -text -noout -in some.crt
Привет, друг, у меня есть строка кода, которая работает для другого места, работает нормально. Вы можете попробовать это:
Веб-форма запроса и ответа с использованием метода публикации на той же странице c # asp.net
Похожие вопросы
Связанные вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.