| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Работа с сетью > Удобная http библиотека |
| Автор: Karadul 24.7.2012, 05:54 | ||
Есть в яве что-то вроде grab или requests из питона? Чтобы одним выражением можно было бы сделать практически любой запрос.
|
| Автор: Stolzen 24.7.2012, 08:11 |
| Нет, такого удобного, чтобы в одну строку, я не встречал. Можете сами написать обертку на HttpClient |
| Автор: Karadul 24.7.2012, 08:32 |
| Наверно, так и придется делать. Как бы сделать это api? В яве нету литералов ни для хеш-массива, ни для списка (есть для массива, но он УГ). urllib.urlencode тоже надо будет самому писать? А лога как в грабе (в выбранную папочку сохраняется 01.log с заголовками запроса и ответа и 01.html с телом ответа) тоже нигде нет? HttpClient http://hc.apache.org/? |
| Автор: Karadul 24.7.2012, 15:39 | ||||||
Увы, заставляет. Да и статическая типизация может быть плюсом.
Я нашел только аналог quote. Так, чтобы двухмерный список -> urlencoded-строка - не видел. C immutable map так?
Может, имеет смысл таки разделять параметры по парам, чтобы юзер не мог подсунуть нечетное количество, и вообще были видны пары ключ-значение (ручное форматирование может угрохать автоформаттер)?
Как вам такой синтаксис? |
| Автор: Stolzen 24.7.2012, 17:15 | ||||
В HttpClient-е было что-то подобное - можно складывать параметры, а потом вызвать какой-то метод, и на выходе urlencoded-строка. Могу ошибаться, и это в какой-то другой библиотеке, не помню. Да, все верно.
В ImmutableMap есть билдер, такое можно там делать Ужасно |
| Автор: Karadul 24.7.2012, 17:40 | ||||
Дык это то, что выдает google://java hashmap lliteral. Отдаленно напоминает питон Так чтоли?
А автоформаттер эту конструкцию не угробит? |
| Автор: Stolzen 24.7.2012, 18:05 |
Угробит Эклипсовый без доп. конфигурации точно угробит |
| Автор: Karadul 24.7.2012, 18:14 |
| Ну вот, а двойные скобки по крайней мере не трогает. А настройки форматтера могут распространяться вместе с проектом. А какие параметры стоит принимать в запросе - String, или Object и вызывать toString()? |