Как отправить запрос с Android Volley Basic Auth? - PullRequest
0 голосов
/ 24 мая 2018

Я хочу отправить запрос с базовой аутентификацией.

Мой заголовок

Username       :        EBA
Token          :       34242353453456563DSFS

И мой класс gsonRequestClass подобен этому:

public GsonRequest(int method, String url, Class<T> responseClass,
                       Map<String, String> parameters, Map<String, String> headers, Listener<T> listener,
                       ErrorListener errorListener) {
        super(method, url, errorListener);
        this.mListener = listener;
        this.mResponseClass = responseClass;
        this.mParameters = parameters;
        this.mHeaders = headers;
    }

    /**
     * Header getter method
     *
     * @return
     * @throws AuthFailureError
     */
    @Override
    public Map<String, String> getHeaders() throws AuthFailureError {
        return mHeaders != null ? mHeaders : super.getHeaders();
    }

Любой совет или пример кода, пожалуйста?

1 Ответ

0 голосов
/ 24 мая 2018

Если вы хотите аутентифицировать token провайдеры API, такие как google, yahoo, facebook, twitter .. etc etc, предоставляет примеры кода для всех server-side languages like PHP, JAVA, и т. Д. И т. Д., И вы не обязаны использовать залп.

Но так как вы задали вопрос о залпе, и я разработал очень много приложений для Android, использующих залп, я начинаю отвечать на volley:


Я предполагаю ..

  1. Вы успешно связали зависимость от залпового фляги.
  2. Ваш веб-сервер настроен и работает
  3. Вы хотите войти на свой собственный сервер с этими учетными данными. Имя пользователя: EBA и пароль: 34242353453456563DSFS
  4. И вы хотите получить ответ на этот запрос на вход или хотите получить некоторые данные в ответ на этот запрос,

Вот, пожалуйста ...


Java-код для отправки http-запроса на страницу сервера:

    StringRequest stringRequest = new StringRequest(Request.Method.POST, "https://www.yourserver.com/get_auth.php", 
new Response.Listener<String>()
{
    @Override
    public void onResponse(String response)
    {
        serverResponse = response;

        // get response string here; if successful

        Toast.makeText(getActivity(),response,Toast.LENGTH_LONG).show();
    }
},
new Response.ErrorListener()
{
    @Override
    public void onErrorResponse(VolleyError error)
    {
        serverResponse = error.toString();

        // If request could not be placed then error report here

        Toast.makeText(getActivity(),error.toString(),Toast.LENGTH_LONG).show();
    }
})

{
@Override
protected Map<String,String> getParams()
{
    Map<String,String> params = new HashMap<String, String>();
    params.put("Username",FirstLast);
    params.put("Token",EmailField.getText().toString());
    return params;
}};

RequestQueue requestQueue = Volley.newRequestQueue(getActivity());
requestQueue.add(stringRequest);

Если вы добились успеха вимпорт библиотеки ... приведенный выше код будет просто необходим для автоматической вставки библиотеки, поместив курсор над двумя строками и используя OPT + RETURN на Mac;который импортирует и включает необходимые пакеты для вашего вышеуказанного запроса.


На вашем веб-сервере get_auth.php должен выглядеть так:

<?php
if($_SERVER['REQUEST_METHOD']=='POST')
{
    $UserInput = $_POST['Username'];
    $UserId = $_POST['Token'];

    $con = mysqli_connect("localhost", "id4859061_instapromo", "sandhya12345","id4859061_instapromo");

    if (!$con)
    {
        echo "EXCEPTION_CODE_1";
        exit();
    }

    $result = $con->query("SELECT * FROM USERS WHERE `DEVID` = '$UserId' AND `KEYGEN` = '$UserInput'");

    if (!$result)
    {
        echo "EXCEPTION_CODE_2";
        exit();
    }
    if ($result->num_rows == 0)
    {
        echo "FAILURE";
        exit();
    }
    if ($result->num_rows == 1)
    {
        $row = $result->fetch_assoc();
        $TempThisDate = $row["VALUEDATE"];

        $InstDate = DateTime::createFromFormat('d/m/Y',$TempThisDate);
        $InstallDate = $InstDate->format('d-m-Y');

        $Response = "SUCCESS#".$InstallDate;
        echo $Response;
        exit();
    }
    if ($result->num_rows > 1)
    {
        echo "REDUNDANT_RECORDS_FOUND";
        exit();
    }

}
else
{
   echo "EXCEPTION_CODE_3";
}

Таким образом, с веб-сервера у вас естьчтобы отправить ваши данные обратно в запрашивающее приложение


Java-код уже toasts этот ответ сервера отправлен со страницы PHP.Это основной рабочий и пошаговый пример. Надеюсь, вы или кто-то еще сочтете это полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...