Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удобная http библиотека 
:(
    Опции темы
Karadul
Дата 24.7.2012, 05:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Есть в яве что-то вроде grab или requests из питона? Чтобы одним выражением можно было бы сделать практически любой запрос.
Код

grab = Grab()
resp = grab.go("http://httpbin.org/post", post={u'превед':u'пака'}, proxy="loopback:9050", proxy_type="socks5")
print resp.body
print resp.cookies

PM MAIL   Вверх
Stolzen
Дата 24.7.2012, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: нет
Всего: 48



Нет, такого удобного, чтобы в одну строку, я не встречал. Можете сами написать обертку на HttpClient 


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
Karadul
Дата 24.7.2012, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Наверно, так и придется делать. Как бы сделать это api? В яве нету литералов ни для хеш-массива, ни для списка (есть для массива, но он УГ).

urllib.urlencode тоже надо будет самому писать?

А лога как в грабе (в выбранную папочку сохраняется 01.log с заголовками запроса и ответа и 01.html с телом ответа) тоже нигде нет?

HttpClient вот этот?

Это сообщение отредактировал(а) Karadul - 24.7.2012, 08:33
PM MAIL   Вверх
Stolzen
Дата 24.7.2012, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: нет
Всего: 48



Цитата(Karadul @  24.7.2012,  09:32 Найти цитируемый пост)
В яве нету литералов ни для хеш-массива, ни для списка (есть для массива, но он УГ).

Да, нет. Но есть ImmutableMap.of из guava, Arrays.asList для списков и все такое. Конечно, это все даже рядом не стоит с синтаксисом питона, но вас же никто не заставляет именно на джаве писать.

 
Цитата(Karadul @  24.7.2012,  09:32 Найти цитируемый пост)
HttpClient вот этот?

Да, оно

Добавлено через 1 минуту
Цитата(Karadul @  24.7.2012,  09:32 Найти цитируемый пост)
urllib.urlencode

А вот это есть уже, не помню правда, где и как называется. То ли в где-то в HttpClient, то ли в классе URL. 


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
Karadul
Дата 24.7.2012, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Цитата(Stolzen @  24.7.2012,  09:23 Найти цитируемый пост)
но вас же никто не заставляет именно на джаве писать.

Увы, заставляет. Да и статическая типизация может быть плюсом.

Цитата(Stolzen @  24.7.2012,  09:23 Найти цитируемый пост)
А вот это есть уже, не помню правда, где и как называется. То ли в где-то в HttpClient, то ли в классе URL.  

Я нашел только аналог quote. Так, чтобы двухмерный список -> urlencoded-строка - не видел.

C immutable map так?
Код

ImmutableMap.of(k1, v1, k2, v2);

Может, имеет смысл таки разделять параметры по парам, чтобы юзер не мог подсунуть нечетное количество, и вообще были видны пары ключ-значение (ручное форматирование может угрохать автоформаттер)?

Код

Client.post(url, new PostParams(){{
    put(k1, v1);
    put(k2, v2);
}})

Как вам такой синтаксис?
PM MAIL   Вверх
Stolzen
Дата 24.7.2012, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: нет
Всего: 48



Цитата(Karadul @  24.7.2012,  16:39 Найти цитируемый пост)
Я нашел только аналог quote. Так, чтобы двухмерный список -> urlencoded-строка - не видел.

В HttpClient-е было что-то подобное - можно складывать параметры, а потом вызвать какой-то метод, и на выходе urlencoded-строка. Могу ошибаться, и это в какой-то другой библиотеке, не помню. 

Цитата(Karadul @  24.7.2012,  16:39 Найти цитируемый пост)
C immutable map так?

Да, все верно.

Цитата(Karadul @  24.7.2012,  16:39 Найти цитируемый пост)
Может, имеет смысл таки разделять параметры по парам, чтобы юзер не мог подсунуть нечетное количество, и вообще были видны пары ключ-значение (ручное форматирование может угрохать автоформаттер)?

В ImmutableMap есть билдер, такое можно там делать


Цитата(Karadul @  24.7.2012,  16:39 Найти цитируемый пост)
Как вам такой синтаксис? 

Ужасно smile Конечно дело вкуса, но меня воротит от двойных фигурных скобок.




--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
Karadul
Дата 24.7.2012, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Цитата(Stolzen @  24.7.2012,  17:15 Найти цитируемый пост)
Конечно дело вкуса, но меня воротит от двойных фигурных скобок.

Дык это то, что выдает google://java hashmap lliteral. Отдаленно напоминает питон smile

Цитата(Stolzen @  24.7.2012,  17:15 Найти цитируемый пост)
В ImmutableMap есть билдер, такое можно там делать

Так чтоли?
Код

   static final ImmutableMap<String, Integer> WORD_TO_INT =
       new ImmutableMap.Builder<String, Integer>()
           .put("one", 1)
           .put("two", 2)
           .put("three", 3)
           .build();


Код

Client.post(url, new PostParams()
    .put(k1, v1)
    .put(k2, v2)
)


А автоформаттер эту конструкцию не угробит?

Это сообщение отредактировал(а) Karadul - 24.7.2012, 17:41
PM MAIL   Вверх
Stolzen
Дата 24.7.2012, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: нет
Всего: 48



Цитата(Karadul @  24.7.2012,  18:40 Найти цитируемый пост)
А автоформаттер эту конструкцию не угробит?

Угробит smile Ну вообще разные форматтеры бывают, некоторые не убивают 
Эклипсовый без доп. конфигурации точно угробит


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
Karadul
Дата 24.7.2012, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Ну вот, а двойные скобки по крайней мере не трогает. А настройки форматтера могут распространяться вместе с проектом.

А какие параметры стоит принимать в запросе - String, или Object и вызывать toString()?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0493 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.