JSON запросы к сайту Qiwi-кошелька - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет, дорогие, это моя первая тема, прошу не судить строго. Хотелось узнать что я делаю не так при авторизации в киви кошельке со своей программы, код будет ниже. Как я понял, здесь используется JSON его вполне получилось имитировать, но авторизации нету.
        public string Test(string login, string pass)
        {
            CookieContainer QiwiCook = new CookieContainer();
            string mony = "";
            {
                string data = "{\"login\":\""+login+"\",\"password\":\""+pass+"\"}";
                string ticket = "";
                {
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"https://qiwi.com/");
                    request.CookieContainer = QiwiCook;
                    request.Method = "GET";
                    request.ContentType = "application/x-www-form-urlencoded";
                    WebResponse response = request.GetResponse();
                    //https://qiwi.com/
                }
                {
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://auth.qiwi.com/cas/tgts");
                    request.Method = "POST";
                    request.CookieContainer = QiwiCook;
                    request.ContentType = "application/json; charset=utf-8";
                    string sQueryString = data;
                    byte[] ByteArr = Encoding.ASCII.GetBytes(sQueryString);
                    request.ContentLength = ByteArr.Length;
                    request.GetRequestStream().Write(ByteArr, 0, ByteArr.Length);
 
                    string html = string.Empty;
                    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                    {
                        using (StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                        {
                            html = myStreamReader.ReadToEnd();
                            ticket = html.Substring("ticket\":\"", "\"");
                        }
                    }
                }
                {
                    string Security = "{\"ticket\":\"" + ticket + "\",\"service\":\"https://qiwi.com/j_spring_cas_security_check\"}";
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://auth.qiwi.com/cas/sts");
                    request.Method = "POST";
                    request.CookieContainer = QiwiCook;
                    request.ContentType = "application/json; charset=utf-8";
                    string sQueryString = Security;
                    byte[] ByteArr = Encoding.ASCII.GetBytes(sQueryString);
                    request.ContentLength = ByteArr.Length;
                    request.GetRequestStream().Write(ByteArr, 0, ByteArr.Length);
 
                    string html = string.Empty;
                    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                    {
                        using (StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                        {
                            html = myStreamReader.ReadToEnd();
                        }
                    }
                }
                {
                    string Security = "{\"service\":\"https://qiwi.com/j_spring_cas_security_check\",\"ticket\":\"" + ticket + "\"}";
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://auth.qiwi.com/cas/sts");
                    request.Method = "POST";
                    request.CookieContainer = QiwiCook;
                    request.ContentType = "application/json; charset=utf-8";
                    string sQueryString = Security;
                    byte[] ByteArr = Encoding.ASCII.GetBytes(sQueryString);
                    request.ContentLength = ByteArr.Length;
                    request.GetRequestStream().Write(ByteArr, 0, ByteArr.Length);
 
                    string html = string.Empty;
                    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                    {
                        using (StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                        {
                            html = myStreamReader.ReadToEnd();
                            ticket = html.Substring("\":\"", "\"");
                        }
                    }
                }
                {
 
                    {
                        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"https://auth.qiwi.com/cas/sts");
                        // request.CookieContainer = QiwiCook;
                        request.Method = "GET";
                        request.ContentType = "application/json;charset=UTF-8";
                        // request.ContentType = "application/json;charset=UTF-8";
                        WebResponse response = request.GetResponse();
                        string html = response.ToString();
 
                    }
                    //OPTIONS
                    {
                        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"https://qiwi.com/j_spring_cas_security_check?ticket=" + ticket);
                        request.CookieContainer = QiwiCook;
                        request.Method = "GET";
                       // request.AllowAutoRedirect = false;
                        request.ContentType = "application/json;charset=UTF-8";
                        WebResponse response = request.GetResponse();
                        string html = response.ToString();
 
                    }
                    {
                        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"https://qiwi.com/main.action");
                        request.CookieContainer = QiwiCook;
                        request.Method = "GET";
                        request.ContentType = "application/x-www-form-urlencoded";
                        WebResponse response = request.GetResponse();
                        string html = response.ToString();
                        mony = html.Substring("<div class=\"account_current_amount\">", "<");
                    }
                }

            }
Используется библиотека xNet, при компиляции ошибок не было на всякий случай
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using xNet.Net;
using xNet.Text;
using System.IO;
using System.Net;

Решение задачи: «JSON запросы к сайту Qiwi-кошелька»

textual
Листинг программы
{"code":{"value":"0","_name":"NORMAL"},"data":{"balances":{"RUB":1.01},"handledCardCount":0,"linkedCardCount":0,"messages":5,"person":"затёр","unpaidOrderCount":0,"validSession":true,"webmoneyHandledLinksCount":0,"webmoneyLinksCount":0},"message":null,"messages":null}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5
Похожие ответы