-40 / 0 / 0
Регистрация: 09.12.2015
Сообщений: 31
1

XNet. Cервер вернул пустой ответ

10.01.2017, 20:37. Показов 3676. Ответов 30
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пишу программу которая должна переходить по ссылке и мне нужно узнать содержание этой ссылки и вывести в textbox.
Но Xnet ругается что типо исключение и сервер вернул пустой ответ.
Содержание ссылки, такое:
{"success":false,"error":"Bonus code has already been redeemed."}
И всё, никаких html тегов, как заставить Xnet работать с этим?
Сам код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using xNet;
 
namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void textBox2_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            string bonusurl = "http://csgopolygon.com/scripts/_redeem_bonus.php?code=";
            string cookie = textBox2.Text;
            String[] s = textBox1.Text.Split(new String[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
 
 
            for (int i=0;i<1;i++)
            {
                bonusurl += s[i] + "\n";
                
                /*using (var request = new HttpRequest(bonusurl))
                {
                    request.Cookies = new CookieDictionary()
    {
        {"PHPSESSID", cookie},
    };
 
                    request[HttpHeader.DNT] = "1";
                    request["X-Secret-Param"] = "UFO";
 
                    request.AddHeader("X-Tmp-Secret-Param", "42");
                    request.AddHeader(HttpHeader.Referer, bonusurl);
                    
                    //request.Get("/");
                    //textBox3.Text += content + "\n";
                }*/
                using (var request = new HttpRequest())
                {
                    var urlParams = new RequestParams();
                    request.Cookies = new CookieDictionary()
    {
        {"PHPSESSID", cookie},
    };
                    urlParams["code"] = "s[i]";
 
                    string content = request.Get("csgopolygon.com/scripts/_redeem_bonus.php", urlParams).ToString();
                }
 
 
 
 
 
 
 
 
 
 
 
                bonusurl = "http://csgopolygon.com/scripts/_redeem_bonus.php?code=";
            }
        }
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
 
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2017, 20:37
Ответы с готовыми решениями:

XNet ответ от сервера
Всем привет форумчане. Возникла проблема, мне нужно получить ответ в HttpResponse чтобы потом...

Как получить Response ответ? xNet
Для отправки Get и Post запросов использую библиотеку xNet HttpRequest http = new...

(xNet.dll) Ответ POST-запроса
Как получить заголовки? private void Auth(string nick, string login, string pass) { ...

XNet. Получить ответ несмотря на 400(404) ошибку
Как получить ответ от сервера, если код ответа 400. У меня запрос сразу в catch кидает, а ответ от...

30
19 / 19 / 9
Регистрация: 14.09.2016
Сообщений: 94
Записей в блоге: 1
11.01.2017, 17:26 21
Author24 — интернет-сервис помощи студентам
Shogun31337, это не самописные ответы, а стандартные методы бибилиотеки xNet,которой пользуется ТС
0
-40 / 0 / 0
Регистрация: 09.12.2015
Сообщений: 31
11.01.2017, 18:19  [ТС] 22
Shogun31337, я вас наверное уже задолбал Но всё равно не работает. Для проверки я указал ссылку на свой сайт, в цикле должно переходить 67 раз на страницу,на сайте установлен счётчик просмотров при запуске программы ни одного просмотра не добавляется( , вот весь код.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using xNet;
using System.Net;
using System.IO;
 
namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void textBox2_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        
 
        private void button1_Click(object sender, EventArgs e)
        {
            string bonusurl = "http://csgopolygon.com/scripts/_redeem_bonus.php?code=";
            string cookie = textBox2.Text;
            String[] s = textBox1.Text.Split(new String[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
            int bonls = textBox1.Lines.Length; 
 
            for (int i = 0; i < 67; i++)
            {
                //bonusurl += s[i] + "\n";
 
                /*using (var request = new HttpRequest(bonusurl))
                {
                    request.Cookies = new CookieDictionary()
    {
        {"PHPSESSID", cookie},
    };
 
                    request[HttpHeader.DNT] = "1";
                    request["X-Secret-Param"] = "UFO";
 
                    request.AddHeader("X-Tmp-Secret-Param", "42");
                    request.AddHeader(HttpHeader.Referer, bonusurl);
                    
                    //request.Get("/");
                    //textBox3.Text += content + "\n";
                }*/
                /*using (var request = new HttpRequest())
                {
                    var urlParams = new RequestParams();
                    request.Cookies = new CookieDictionary()
    {
        {"PHPSESSID", cookie},
    };
                    urlParams["code"] = "s[i]";
 
                    string content = request.Get("csgopolygon.com/scripts/_redeem_bonus.php", urlParams).ToString();
                }*/
                
                //HttpWebRequest wr = (HttpWebRequest)HttpWebRequest.Create("http://csgopolygon.com/scripts/_redeem_bonus.php?code=" + s[i]);
                //wr.CookieContainer = new CookieContainer();
                
                //wr.CookieContainer.Add(new Cookie("PHPSESSID", "27v89q7k8ob99o43mf9304qog5", "http://csgopolygon.com/", target.Host));
                //wr.CookieContainer.Add(new Cookie("PHPSESSID", cookie, "/", "csgopolygon.com"));
                //textBox3.Text += "http://csgopolygon.com/scripts/_redeem_bonus.php?code=" + s[i] + "\n";
                //textBox3.Text += "[+] Code №" + i + " is Working" + "\r\n";
                
                //textBox3.Text += wr;
 
 
                string site = "http://polycoins.gq/";
 
                HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(site);
                req.Headers.Add("Accept-Language: ru,ru-RU;q=0.8,en-US;q=0.5,en;q=0.3");
                req.Headers.Add("Accept-Encoding: gzip, deflate");
                //req.Connection = "keep-alive";
                req.Headers.Add("Cache-Control: max-age=0");
                req.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0";
                req.Headers.Add("Upgrade-Insecure-Requests: 1");
 
                HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
 
                using (StreamReader stream = new StreamReader(
                     resp.GetResponseStream(), Encoding.UTF8))
                {
                    textBox3.Text = stream.ReadToEnd();
                }
 
 
 
                //bonusurl = "http://csgopolygon.com/scripts/_redeem_bonus.php?code=";
            }
        }
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
        }
 
        private void textBox3_TextChanged(object sender, EventArgs e)
        {
 
        }
    }
}
0
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
11.01.2017, 18:38 23
dkfancsak, Аааа! Ну ясно! Просто я с этой библиотекой не знаком, о чем и писал выше и ТС попросил показать как реализовать запросы с помощью HttpWebRequest.

Добавлено через 18 минут
Kote_Anonim, что именно не работает? запрос отправляется или нет? ответ от сервера получается или нет? Проверьте для начала алгоритм без циклов. Установите брекпоинты в коде и посмотрите как он работает, как изменяются переменные. Посмотрите трафик сниффером. Сравните с трафиком при использовании браузера. После этого либо у Вас вопросы отпадут, либо можно будет говорить более предметно. А сейчас я могу только гадать, что у Вас происходит...

Кстати, по поводу гадания...
Не уверен что Вы заголовки добавляете правильно. Попробуйте вот так:
C#
1
HttpWRequest.Headers.Add("headerName", "haederValue");
Кроме того, у класса HttpWebRequest основные заголовки добавляются не так а вот так:
C#
1
2
3
HttpWRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
HttpWRequest.KeepAlive = true;
HttpWRequest.AllowAutoRedirect = false;
0
-40 / 0 / 0
Регистрация: 09.12.2015
Сообщений: 31
11.01.2017, 19:31  [ТС] 24
Не оправляются запросы.
0
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
11.01.2017, 19:48 25
Цитата Сообщение от Kote_Anonim Посмотреть сообщение
Не оправляются запросы.
Как Вы это выяснили?
0
-40 / 0 / 0
Регистрация: 09.12.2015
Сообщений: 31
11.01.2017, 20:04  [ТС] 26
Ошибся,извините. Запросы отправляются.(Отследил через Charles)

Добавлено через 1 минуту
Но ответ идёт в html почему-то. Когда надо в json.
0
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
11.01.2017, 20:06 27
Вот рабочий пример:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
 
        private void Form2_Load(object sender, EventArgs e)
        {
            HttpWebRequest req = (HttpWebRequest)HttpWebRequestCreate("http://polycoins.gq/");
 
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            
            using (StreamReader stream = new StreamReader(
                 resp.GetResponseStream(), Encoding.UTF8))
            {
                textBox1.Text = stream.ReadToEnd();
            }
 
            resp.Close();
        }
    }
}


На форме только 1 текстбокс с именем textbox1! Примите этот пример за базовый!

Добавлено через 52 секунды
Цитата Сообщение от Kote_Anonim Посмотреть сообщение
Но ответ идёт в html почему-то. Когда надо в json.
Это уже не ко мне вопрос, а к серверу!
0
-40 / 0 / 0
Регистрация: 09.12.2015
Сообщений: 31
11.01.2017, 20:57  [ТС] 28
Спасибо огромное! Программа работает, остался последний штрих! Как можно "усыпить" программу? Что-бы после 20 иттого она засыпала секунд на 5.
0
19 / 19 / 9
Регистрация: 14.09.2016
Сообщений: 94
Записей в блоге: 1
11.01.2017, 21:10 29
thread.sleep(5000)
0
-40 / 0 / 0
Регистрация: 09.12.2015
Сообщений: 31
11.01.2017, 21:22  [ТС] 30
Спасибо,но дело оказывается не в этом. Любой запрос на любой сервер после 60-го раза начинает выпендриваться.
0
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
11.01.2017, 21:27 31
"Усыпить" вот так:
C#
1
Thread.Sleep(5000);
5000 - это время задержки в миллисекундах

Добавлено через 49 секунд
Опоздал!
0
11.01.2017, 21:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.01.2017, 21:27
Помогаю со студенческими работами здесь

(xNet.dll) Ответ POST-запроса (авторизация на одноклассниках)
Здравствуйте. Пытаюсь осуществить авторизацю на odnoklassniki.ru с помощью библиотеки xNet....

Ответ от POP3 пустой
Какие могут быть причины?

POST запрос: иногда приходит пустой ответ от сервера
Отсылаю POST запрос(HttpWebRequest) , использую прокси(запрос на pw.mail.ru) и очень часто ответ...

Сервер вернул ошибочный или нераспознанный ответ
Не хочет страница выполнять запрос к MS SQL 2000 больше 70 сек и выдает 'Сервер вернул ошибочный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru