HttpClient больше не поддерживается в sdk 23. Релиз Android 6.0 (API Level 23) удаляет поддержку для HTTP-клиента Apache. Вы должны использовать
android {
useLibrary 'org.apache.http.legacy'
.
.
.
, а также добавить ниже фрагмент кода в вашей зависимости:
// http окончательное решение для веб-сервиса (включая загрузку файлов)
compile('org.apache.httpcomponents:httpmime:4.3.6') {
exclude module: 'httpclient'
}
compile 'org.apache.httpcomponents:httpclient-android:4.3.5'
Он также поможет вам, пока вы используете Use MultipartEntity для загрузки файлов.
Он отправляет дополнительную информацию, которую пользователь не знает или не интересуется (например, токен безопасности), так что, если форма отправляется дважды, вы можете сравнить токены и отклонить / принять это представление.
Рассмотрим форму, отображаемую для редактирования записи в базе данных, одна из которых - испечь идентификатор этой записи в скрытом вводе и вернуть ее, чтобы сервер мог ее прочитать.
Он также часто используется для целей безопасности (как сказал генезис).
Еще одна причина может заключаться в сценариях, ориентированных на javascript, возможно, для нестандартных элементов управления, таких как древовидные структуры, где концепция выбранного узла не может быть представленный как обычный вход. Вместо этого JS может манипулировать скрытым полем и хранить в нем имя / идентификатор узла, чтобы он мог быть прочитан сервером.
Например, если у вас есть форма для редактирования сущности из вашей модели данных, вы можете использовать скрытый ввод для размещения идентификатора объекта, который вы обновляете, поскольку вы не хотите, чтобы это значение помещалось в текстовое поле ввода, которое будет отправлено обратно на сервер. скрытое поле будет отправлено на сервер, как если бы оно было частью вашей формы.
Не использование скрытых входов означает, что серверу необходимо отслеживать эти значения. Это требует от сервера сохранения состояния, которое в противном случае могло бы быть встроено в запрос (форму). Это может сделать страницу RESTless (не RESTful), т. Е. Нарушить самодостаточность HTTP-запроса. Если вы сделали отслеживание скрытых значений на сервере, вам, по крайней мере, нужно будет вставить уникальный токен в каждую форму, чтобы иметь дело с несколькими различными уникальными представлениями одной и той же формы. Самый чистый способ вставить такой токен - это барабан, через скрытый ввод. :) [/ Д2]
Это именно то, что подразумевает это имя, ввод формы, скрытый от пользователя. Это способ получить данные на сервере, которые пользователю не нужно видеть или контролировать напрямую. Это особенно полезно для сохранения состояния.
Я сейчас работаю над проектом, когда пользователь создает несколько элементов, которые представлены как объекты данных в JavaScript и сериализуются при отправке на сервер. Эти элементы данных выражаются одним способом при отображении пользователю с помощью HTML, другим способом, как JavaScript, и третьим способом отправки на сервер. Скрытый вход - это только способ выполнить это. (Хорошо, отлично не на самом деле единственный способ, но, безусловно, самый разумный способ).
, потому что у вас есть цикл php while с множеством разных объектов, которые вы не можете получить позже, и вы просто сохраняете их, сохраняя их в скрытом вводе ... также мне нравится, чтобы они были проверкой безопасности на знаю, что мои пользователи не возились с моими переменными post через данные тампера
Поле скрытого ввода не отображается на странице, поэтому оно не позволяет посетителям ничего добавлять в него. Скрытый ввод позволяет вам, веб-мастеру, добавлять определенную информацию в форму, которая должна передаваться через процессор формы вместе с данными, введенными посетителем.
Например, если у вас несколько форм на разных страниц на вашем веб-сайте, вы можете использовать скрытый тег в каждой форме, который идентифицирует, на какой странице находился посетитель, когда они заполнили форму.
Скрытый ввод предназначен, когда вы хотите отправить информацию обратно в сообщение, не видя данные пользователем в качестве элемента пользовательского интерфейса.
Веб является апатридом - эрго, когда приходит POST, у вас есть только пара фрагментов информации, чтобы определить, что вам нужно делать; Session, Url, некоторые ServerVariables и данные формы.
Если часть данных является временной, что не полезно для ввода сессии, иногда разумно вводить в скрытое поле.
Они также могут быть полезны для хранения данных на стороне клиента для использования в богатых интернет-приложениях (таких как идентификатор продукта, который легко доступен для использования в вызовах ajax).
Как следует из названия, скрытые поля похожи на другие поля ввода, кроме одной разницы, т. е. скрытые поля фактически не отображаются пользователю и, следовательно, не могут быть отредактированы пользователем. Его значение может быть установлено только во время выполнения т.е. может представлять собой отправку формы, которая отправляет данные на сервер. Но данные, установленные на html-странице i.e. name / value, можно увидеть в html-источнике страницы (просмотреть источник страницы).
Если вы создадите систему тегов, такую как здесь. Вы можете установить значения в скрытое поле.
GET
vsPOST
должен определяться на основании того, имеет ли представление какие-либо побочные эффекты (например, обновление записи) - нет никакой разницы между ними в плане безопасности. Данные всегда должны быть проверены на стороне сервера. – Brad Mace 22 January 2016 в 15:39