Bitcoin Forum
November 19, 2024, 10:44:51 AM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Не удалось создать защищенный канал SSL/TLS.  (Read 235 times)
megabax (OP)
Newbie
*
Offline Offline

Activity: 19
Merit: 1


View Profile
March 21, 2019, 02:10:53 PM
 #1

Добрый день.
Пытаюсь через АПИ blockchain.info закачать историю кошелька:

Code:
            string url = @"https://blockchain.info/rawaddr/385cR5DM96n1HvBDMzLHPYcw89fZAXULJP";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            request.Method = "GET";
            request.Accept = "application/json";
            request.UserAgent = "Mozilla/5.0 ....";

            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
            WebResponse httpResponse = request.GetResponse();
            StreamReader reader = new StreamReader(httpResponse.GetResponseStream());

            history = JsonConvert.DeserializeObject<JsonWalletHistory>(reader.ReadToEnd());

Код на C#.

И почему то на строке
Code:
WebResponse httpResponse = request.GetResponse();

Вылетает с ошибкой:
Quote
Additional information: Запрос был прерван: Не удалось создать защищенный канал SSL/TLS

Подскажите, пожалуйста, что делаю не так?
A-Bolt
Legendary
*
Offline Offline

Activity: 2335
Merit: 2384


View Profile
March 21, 2019, 04:41:06 PM
 #2

Подскажите, пожалуйста, что делаю не так?

Будьте проще:

Code:
string url = @"https://blockchain.info/rawaddr/385cR5DM96n1HvBDMzLHPYcw89fZAXULJP";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
           
using (WebResponse httpResponse = request.GetResponse())
{
   using (StreamReader reader = new StreamReader(httpResponse.GetResponseStream()))
   {
      history = JsonConvert.DeserializeObject<JsonWalletHistory>(reader.ReadToEnd());
   }
}
megabax (OP)
Newbie
*
Offline Offline

Activity: 19
Merit: 1


View Profile
March 22, 2019, 05:09:30 AM
Last edit: March 22, 2019, 05:28:43 AM by megabax
 #3

Все равно та же самая ошибка на строке

Code:
using (WebResponse httpResponse = request.GetResponse())
n00by
Member
**
Offline Offline

Activity: 172
Merit: 11


View Profile
March 22, 2019, 07:17:37 AM
 #4

Все равно та же самая ошибка на строке

Code:
using (WebResponse httpResponse = request.GetResponse())

Там по моему токен нужен для SSL. То есть твой request  надо дополнить параметрами SSL
A-Bolt
Legendary
*
Offline Offline

Activity: 2335
Merit: 2384


View Profile
March 22, 2019, 09:31:01 AM
 #5

Все равно та же самая ошибка на строке
Code:
using (WebResponse httpResponse = request.GetResponse())

Странно как-то. У меня прямо сейчас вот этот код выводит в консоль ответ в формате JSON без всяких ошибок:
Code:
        static void Main(string[] args)
        {
            string url = @"https://blockchain.info/rawaddr/385cR5DM96n1HvBDMzLHPYcw89fZAXULJP";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
           
            using (WebResponse httpResponse = request.GetResponse())
            {
                using (StreamReader reader = new StreamReader(httpResponse.GetResponseStream()))
                {
                    Console.WriteLine(reader.ReadToEnd());
                }
            }           
        }
megabax (OP)
Newbie
*
Offline Offline

Activity: 19
Merit: 1


View Profile
March 22, 2019, 10:37:47 AM
 #6

Действительно странно.
После того как перевел проект на NetFramework 4.7.1 и поднял Visual studio с 2015 до 2017 заработало.

Хотя, непонятно, почему не ставится BlockchainAPI, выдавая сообщение:

Quote
Серьезность   Код   Описание   Проект   Файл   Строка   Состояние подавления
Ошибка      Не удалось установить пакет «BlockchainAPI 4.0.0». Вы пытаетесь установить этот пакет в проект, требуемая версия платформы которого — «.NETFramework,Version=v4.7.1», но в пакете нет ссылок на сборки или файлов содержимого, совместимых с этой платформой. Дополнительную информацию можно получить у автора пакета.      
      

Кстати, а стоит ли вообще ставить BlockchainAPI, кто-нибудь работал с ним?
ligor
Full Member
***
Offline Offline

Activity: 1246
Merit: 138


Hodl DeepOnion


View Profile WWW
March 22, 2019, 10:38:06 AM
 #7

Может протоколов задать больше?

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

megabax (OP)
Newbie
*
Offline Offline

Activity: 19
Merit: 1


View Profile
March 22, 2019, 10:46:38 AM
 #8

Еще вопрос в догонку.
В этом JSON информация о дате и времени типа "time":1552580349,
в какой формате? Как ее в нормальное время перевести?

Quote
Может протоколов задать больше?

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

И так делал. И точно также не работало. Только после установки VS 2017 и NetFramework 4.7.1 заработало. Но никак не понимаю, какая тут связь??
ligor
Full Member
***
Offline Offline

Activity: 1246
Merit: 138


Hodl DeepOnion


View Profile WWW
March 22, 2019, 11:04:14 AM
 #9

Еще вопрос в догонку.
В этом JSON информация о дате и времени типа "time":1552580349,
в какой формате? Как ее в нормальное время перевести?

Quote
Может протоколов задать больше?

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

И так делал. И точно также не работало. Только после установки VS 2017 и NetFramework 4.7.1 заработало. Но никак не понимаю, какая тут связь??

Это в Юниксовом http://www.onlineconversion.com/unix_time.htm

Много вариантов обработать, например так https://stackoverflow.com/questions/249760/how-can-i-convert-a-unix-timestamp-to-datetime-and-vice-versa

По поводу протоколов, вроде как старые версии студии (фреймворков?) не поддерживают новые протоколы, но могу ошибиться.

megabax (OP)
Newbie
*
Offline Offline

Activity: 19
Merit: 1


View Profile
March 22, 2019, 12:12:42 PM
 #10

Quote
По поводу протоколов, вроде как старые версии студии (фреймворков?) не поддерживают новые протоколы, но могу ошибиться.

После установки новый фрейморков новые протоколы не добавились, как было максимум SecurityProtocolType.Tls12, так и осталось

Кстати, не подскажите как решить внезапно всплывшую проблему?
В Json-е есть такое:

Quote
"out":[
      {
         "spent":false,
...
...

Но я не могу объявить структуру типа public List<МойКласс> out; - ибо ключевое слово.
То есть получается не будет работать конструкция
Code:
history = JsonConvert.DeserializeObject<JsonWalletHistory>(reader.ReadToEnd());

Как тут быть? В самом тексте Json-перед распарсиванием заменить out на что-то иное или есть другое, более красивое решение?
ligor
Full Member
***
Offline Offline

Activity: 1246
Merit: 138


Hodl DeepOnion


View Profile WWW
March 22, 2019, 01:51:28 PM
Last edit: March 22, 2019, 02:02:28 PM by ligor
 #11

Quote
По поводу протоколов, вроде как старые версии студии (фреймворков?) не поддерживают новые протоколы, но могу ошибиться.

После установки новый фрейморков новые протоколы не добавились, как было максимум SecurityProtocolType.Tls12, так и осталось

Кстати, не подскажите как решить внезапно всплывшую проблему?
В Json-е есть такое:

Quote
"out":[
      {
         "spent":false,
...
...

Но я не могу объявить структуру типа public List<МойКласс> out; - ибо ключевое слово.
То есть получается не будет работать конструкция
Code:
history = JsonConvert.DeserializeObject<JsonWalletHistory>(reader.ReadToEnd());

Как тут быть? В самом тексте Json-перед распарсиванием заменить out на что-то иное или есть другое, более красивое решение?

используй
[JsonProperty("out")]

т.е. вроде

    // rename property
    [JsonProperty("out")]
    public IList myout{ get; set; }


P.S. А разве их АПИ https://www.blockchain.com/ru/api не облегчает использование?
Вот их библиотека https://github.com/blockchain/api-v1-client-csharp

megabax (OP)
Newbie
*
Offline Offline

Activity: 19
Merit: 1


View Profile
March 22, 2019, 02:46:01 PM
 #12

Quote
используй
[JsonProperty("out")]

спасибо.

Quote

Вот она что-то не ставится. говорит:
Quote
Серьезность   Код   Описание   Проект   Файл   Строка   Состояние подавления
Ошибка      Не удалось установить пакет «BlockchainAPI 4.0.0». Вы пытаетесь установить этот пакет в проект, требуемая версия платформы которого — «.NETFramework,Version=v4.7.1», но в пакете нет ссылок на сборки или файлов содержимого, совместимых с этой платформой. Дополнительную информацию можно получить у автора пакета.            

Кстати, еще такой интересный момент, в Json есть поле

"result":5005, я так понимаю что это результат транзакции. Но только вот как-то странно, он сдвинут на 1 транзакцию назад. То есть, вот история по кошельку 385cR5DM96n1HvBDMzLHPYcw89fZAXULJP

568252   2019-03-22 10:16:44   +0.00005005 BTC   128,004.91059223 BTC   $511,052,121 @ $3,992.44
568097   2019-03-21 11:02:02   +0.00000546 BTC   128,004.91054218 BTC   $519,012,907 @ $4,054.63
567044   2019-03-14 19:34:50   +0.00001 BTC   128,004.91053672 BTC   $496,525,109 @ $3,878.95

Первая транзакция (от 22 марта) "result":0
и только следующая за ней с датой от 21 марта имеет "result":5005?
Непонятно, когда фактически поступили 0.00005005 BTC на кошелек, 22 марта, или все таки 21-ого?
ligor
Full Member
***
Offline Offline

Activity: 1246
Merit: 138


Hodl DeepOnion


View Profile WWW
March 22, 2019, 04:28:10 PM
 #13

Quote

Вот она что-то не ставится. говорит:
Quote
Серьезность   Код   Описание   Проект   Файл   Строка   Состояние подавления
Ошибка      Не удалось установить пакет «BlockchainAPI 4.0.0». Вы пытаетесь установить этот пакет в проект, требуемая версия платформы которого — «.NETFramework,Version=v4.7.1», но в пакете нет ссылок на сборки или файлов содержимого, совместимых с этой платформой. Дополнительную информацию можно получить у автора пакета.            

Кстати, еще такой интересный момент, в Json есть поле

Там на Коре 1 идет, но можно изменить на фреймворк

Quote
The library requires .NET Core 1.1. It is possible to use this library with the .NET Framework by editing Info.Blockchain.Api.csproj

and changing

<TargetFramework>netcoreapp1.1</TargetFramework>

to your project's .NET version, e.g.

<TargetFramework>net46</TargetFramework>

По поводу result:5005 не скажу, может тут вообще не о сумме речь идет? 22 марта все таки позднее 21

megabax (OP)
Newbie
*
Offline Offline

Activity: 19
Merit: 1


View Profile
March 25, 2019, 05:42:43 AM
 #14

Quote
Там на Коре 1 идет, но можно изменить на фреймворк
То есть ее не через нугет пакеты надо ставить, а скачать проект и прицепить его к моему решению, а там указать фреймворк?

Quote
По поводу result:5005 не скажу, может тут вообще не о сумме речь идет? 22 марта все таки позднее 21
Я сморю сюда:
https://bitinfocharts.com/ru/bitcoin/address/385cR5DM96n1HvBDMzLHPYcw89fZAXULJP
тут история отсортированая в обратном порядке (сначала новые потом старые даты), транзакции по АПИ в таком же порядке, и что в result совпадает с суммой, но сдвинуто на 1 в сторону старых  дат.
Но фактический эта сумма фигурирует в выходах за ту дату, которая стоит в таблице остатков из https://bitinfocharts.com/ru/bitcoin/address/385cR5DM96n1HvBDMzLHPYcw89fZAXULJP
   "out":[
      {
         "spent":false,
         "tx_index":427293982,
         "type":0,
         "addr":"1AVGjEN5wuHZacY2NCk4KxDstoXZDMh2A",
         "value":1346,
         "n":0,
         "script":"76a91401cb57ded602c21d050856ef3f9f8bbe006462f488ac"
      },
      {
         "spent":false,
         "tx_index":427293982,
         "type":0,
         "addr":"385cR5DM96n1HvBDMzLHPYcw89fZAXULJP",
         "value":5005,
         "n":1,
         "script":"a9144616b2c00cfc401861b98e86ccce47a683ed63da87"
      }
   ],

Вот не пойму почему так.
Что вообще обозначает поле "time":1553238932, в транзакции? Момент когда пользователь сформировал транзакцию, момент когда она в блок была включена ли когда была подтверждена?
fxpc
Sr. Member
****
Offline Offline

Activity: 1316
Merit: 420


KTO EC/\U HUKTO?


View Profile
March 25, 2019, 12:35:49 PM
 #15

Что вообще обозначает поле "time":1553238932, в транзакции? Момент когда пользователь сформировал транзакцию, момент когда она в блок была включена ли когда была подтверждена?

В транзакции его нет. Это timestamp блока.

ligor
Full Member
***
Offline Offline

Activity: 1246
Merit: 138


Hodl DeepOnion


View Profile WWW
March 25, 2019, 12:53:38 PM
 #16

То есть ее не через нугет пакеты надо ставить, а скачать проект и прицепить его к моему решению, а там указать фреймворк?
....
Вот не пойму почему так.
Что вообще обозначает поле "time":1553238932, в транзакции? Момент когда пользователь сформировал транзакцию, момент когда она в блок была включена ли когда была подтверждена?

Посмотрел - там у них свежая версия на Стандарте, значит можно и в 4.6.1 и выше использовать. Создаешь проект и через Нугет ставишь, примеры подробные https://github.com/blockchain/api-v1-client-csharp/blob/master/docs/blockexplorer.md .

Попробовал - работает.

И не нужно с парсингом возиться.

megabax (OP)
Newbie
*
Offline Offline

Activity: 19
Merit: 1


View Profile
March 26, 2019, 06:03:06 AM
 #17

Quote
В транзакции его нет. Это timestamp блока.
То есть вообще непонятно, когда транзакция сформировалась? И поэтому момент поступления средств считать моментом формирования  блока, ибо тогда ее все увидели?

И еще некоторые непонятны.
Если я делаю такой вот запрос к https://blockchain.info:
https://blockchain.info/multiaddr?active=bc1q9sh6544xls87x7skjzyfhkty4wq7z76vn7qzq9
у меня говорит: https://blockchain.info/multiaddr?active=bc1q9sh6544xls87x7skjzyfhkty4wq7z76vn7qzq9
Invalid Bitcoin Address

По другим кошелькам нормально выдает транзакцию.
По тому же кошельку bc1q9sh6544xls87x7skjzyfhkty4wq7z76vn7qzq9
сервис https://bitinfocharts.com выдает график и таблицу движений: https://bitinfocharts.com/ru/bitcoin/address/bc1q9sh6544xls87x7skjzyfhkty4wq7z76vn7qzq9

Это как понимать, сервис https://blockchain.info глючит?
A-Bolt
Legendary
*
Offline Offline

Activity: 2335
Merit: 2384


View Profile
March 26, 2019, 09:33:29 AM
 #18

Quote
В транзакции его нет. Это timestamp блока.
То есть вообще непонятно, когда транзакция сформировалась? И поэтому момент поступления средств считать моментом формирования  блока, ибо тогда ее все увидели?

Да. Это такая фича криптовалют. Пока транзакция не в блоке - считайте, что её нет.

Quote
И еще некоторые непонятны.
Если я делаю такой вот запрос к https://blockchain.info:
https://blockchain.info/multiaddr?active=bc1q9sh6544xls87x7skjzyfhkty4wq7z76vn7qzq9
у меня говорит: https://blockchain.info/multiaddr?active=bc1q9sh6544xls87x7skjzyfhkty4wq7z76vn7qzq9
Invalid Bitcoin Address

По другим кошелькам нормально выдает транзакцию.
По тому же кошельку bc1q9sh6544xls87x7skjzyfhkty4wq7z76vn7qzq9
сервис https://bitinfocharts.com выдает график и таблицу движений: https://bitinfocharts.com/ru/bitcoin/address/bc1q9sh6544xls87x7skjzyfhkty4wq7z76vn7qzq9

Это как понимать, сервис https://blockchain.info глючит?

blockchain.info не поддерживает адреса формата Bech32.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!