Кракозябры в ответе на GET-запрос

  • Автор темы Автор темы Bas
  • Дата начала Дата начала

Bas

Client
Регистрация
15.12.2013
Сообщения
656
Реакции
267
Баллы
63
Добрый вечер и с Наступающим, дорогие коллеги.
Вот уже пора оливье шинковать, а я уже второй вечер над получение данных через Get-запрос бьюсь. Помогите кто чем сможет:
Код:
Развернуть Свернуть Копировать
string result_get = ZennoPoster.HttpGet("http://pool.democats.org:7603/live_stats",
    "",
    "UTF-8",
    ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,
    30000,
    "",
    project.Profile.UserAgent,
    true,
    10,
    new String[] {
        "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
        "Accept-Language: en-US,en;q=0.5",
        "Connection: keep-alive",
    }
    );
При отправке запроса через браузер все отлично, в фиддлере при просмотре появляется предложение расшифровать, но как эту расшифровку реализовать в зеннопостере? На форуме были подобные темы, людям помогало удаление "Accept-Encoding: gzip, deflate", я удалил, чуда не произошло. Кодировки тоже все перебрал через стандартный кубик, ни с 1 не прочитался текст. Подскажите кто чем может, а то без оливье останусь)))
 
  • Оценить
Реакции: frion-seo
Тебе нужно расшифровать полученные данные, например в C# это делается очень просто:
Код:
Развернуть Свернуть Копировать
public async Task<string> GetDecompress(string url)
{
    var handler = new HttpClientHandler
    {
        AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip
    };
    var client = new HttpClient(handler);

    var result = await client.GetStringAsync(url);

    return result;
}

В зенке же можно использовать свой код C#, как вариант написать свой класс работы с get запросами.
 
Тебе нужно расшифровать полученные данные, например в C# это делается очень просто:
Код:
Развернуть Свернуть Копировать
public async Task<string> GetDecompress(string url)
{
    var handler = new HttpClientHandler
    {
        AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip
    };
    var client = new HttpClient(handler);

    var result = await client.GetStringAsync(url);

    return result;
}

В зенке же можно использовать свой код C#, как вариант написать свой класс работы с get запросами.
да, я видел этот код на стаке, но ума не приложу как его в зеннопостер перенести. Так бы протестировал его уже давно :)
 
Последнее редактирование:
Нужно добавить еще 2 директивы:
Код:
Развернуть Свернуть Копировать
using System.Net.Http;
using System.Threading.Tasks;
И лучше переписать метод, без использования асинхронного кода.
 
  • Оценить
Реакции: Bas
Код:
Развернуть Свернуть Копировать
using System.Threading.Tasks;
Для компиляции не хватало этой директивы, первую добавил уже был ранее. Насчет переписать код - как будто здесь все много лет на c# пишут)))) Простые вещи в виде распарсить регуляркой, поместить в список, извлечь, сравнить и т.д. на c# я могу конечно написать, но слова асинхронный код для меня знакомы только по отдельности, т.е. я знаю смысл каждого из них, но не вместе)))) Если не затруднит, можете помочь готовым кодом для использования?
 
лови код
Код:
Развернуть Свернуть Копировать
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://pool.democats.org:7603/live_stats");
request.Method = "GET";
request.Headers.Add("Accept-Encoding", "gzip");
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string resultGet = reader.ReadToEnd();
response.Close();
reader.Close();
return resultGet;

в юзинги добавь
Код:
Развернуть Свернуть Копировать
using System.IO.Compression;
using System.Web;
using System.Net;
все пашет проверил
Screenshot_3.png
 
  • Оценить
Реакции: Tsogoevs, orka13 и Bas
лови код
Код:
Развернуть Свернуть Копировать
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://pool.democats.org:7603/live_stats");
request.Method = "GET";
request.Headers.Add("Accept-Encoding", "gzip");
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string resultGet = reader.ReadToEnd();
response.Close();
reader.Close();
return resultGet;

в юзинги добавь
Код:
Развернуть Свернуть Копировать
using System.IO.Compression;
using System.Web;
using System.Net;
все пашет проверил
Посмотреть вложение 25948
Зенка весь код подчеркивает: http://joxi.ru/5md5LbVCvg0eP2 :(
 
не туда суешь))) код сунь просто в кубик c# )))) в общий код ваще ниче не надо, я тебе упрощенный вариант сделал ))
 
"Не в ту дырочку, Карл, не в ту дырочку суешь!"
Сори пацаны, не удержался, всем веселых праздников :-).
 
  • Оценить
Реакции: frion-seo
Почувствуй силу, ЛЮК!
https://clip2net.com/s/3QLhWK3
(я ничего не трогал, просто скопипастил, спасибо тем кто реально помогали)
 
Последнее редактирование:
  • Оценить
Реакции: Bas и frion-seo
пляяяяяяяя куда ты директивы сунешь.... вот как надо
2N53s0KHRoCr_B21dRqPpA.png
 
  • Оценить
Реакции: Bas
Спасибо всем отозвавшимся, особенно frion-seo за адаптацию кода! Все зафурыкало, добивать уже буду видимо после НГ. Всех с наступающим! Веселых праздников!
 
  • Оценить
Реакции: frion-seo
И тебя с наступающим)))
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)