Имя: Пароль:
IT
 
Удаленный сервер возвратил ошибку: (404)
,
0 megabax
 
14.03.18
12:11
Добрый день.
Подскажите, пожалуйста, почем так может быть.
Запускаю вот такую программу:
        private void button1_Click(object sender, EventArgs e)
        {

            string url = @"https://api.binance.com/api/v1/ping";;

            using (var webClient = new WebClient())
            {
                // Создаём коллекцию параметров
                var pars = new NameValueCollection();


                // Посылаем параметры на сервер
                // Может быть ответ в виде массива байт
                var response = webClient.UploadValues(url, pars);

                MessageBox.Show(response.ToString());
            }
        }
Она вываливается с исключением
Удаленный сервер возвратил ошибку: (404)
Хотя если этот адрес https://api.binance.com/api/v1/ping набрать в браузере, то он отрабатывает нормально.
1 megabax
 
14.03.18
12:55
up
2 eklmn
 
гуру
14.03.18
13:01
я б тебя тоже послал
3 Волшебник
 
14.03.18
13:02
megabax взялся за Basic... Держитесь!
4 Cyberhawk
 
14.03.18
13:07
Криптовалюту автоматизируешь?
5 megabax
 
14.03.18
13:16
(3) Это не бэйсик, это C#
6 megabax
 
14.03.18
13:19
(4) Да
7 megabax
 
14.03.18
13:21
В общем, если использовать объект вэб браузер так
        private void button2_Click(object sender, EventArgs e)
        {
            //webBrowser1.Url= new Uri(@"https://api.binance.com/api/v1/ping";);
            webBrowser1.Url = new Uri(@"https://api.binance.com/api/v1/trades?symbol=ETHBTC";);
        }
то выскакивает диалог скачивания файла, скачивается JSON файл. Теперь вопрос, собственно, в том, как в C# открыть URL, который возвращает JSON?
8 megabax
 
14.03.18
14:12
В общем, спасибо всем, разобрался, надо как-то так:
        private void button3_Click(object sender, EventArgs e)
        {
            //string url = @"https://api.binance.com/api/v1/exchangeInfo";;
            //string url = @"https://api.binance.com/api/v1/time";;
            //string url = @"https://api.binance.com/api/v1/ping";;
            string url = @"https://api.binance.com/api/v1/trades?symbol=ETHBTC";;
            //string url = @"https://api.binance.com/api/v1/klines?symbol=LTCBTC&interval=5m";;
            HttpWebRequest request =
                        (HttpWebRequest)WebRequest.Create(url);

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

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream());
            StringBuilder output = new StringBuilder();
            output.Append(reader.ReadToEnd());
            response.Close();
            MessageBox.Show(output.ToString());
        }

Причина оказалось в том, что надо именно GET запрос посылать, а не POST
9 Волшебник
 
14.03.18
14:13
(5) Одна хрень. Дотнет, короче
10 Cyberhawk
 
14.03.18
14:52
(6) Кто финансирует разработку?
11 megabax
 
14.03.18
14:53
(9) Зато там есть ООП полноценный
(10) Конфиденциальная информация
12 Cyberhawk
 
14.03.18
14:56
(11) Ну Я ж не реквизиты спрашиваю, а скорее сферу деятельности заказчика танцев
13 megabax
 
14.03.18
15:29
(12) Дык это КЭП - трейдинг на криптобирже
14 Cyberhawk
 
14.03.18
15:35
(13) Так ты не ответил, кто заказчик. Не для себя же пишешь?
15 megabax
 
14.03.18
15:55
(14) Заказчик - частный трейдер, который торгует на криптобирже. Имя, извини, не могу назвать.
16 Cyberhawk
 
14.03.18
15:56
(15) Да и не нужно, сказанного вроде достаточно
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс