Как я могу принять этот локон как JSON, от Керла до залпа? - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь перевести Curl код в Android volley , чтобы получить токен API, я новичок в библиотеке Curl and Volley, поэтому мне нужна небольшая помощь ..

Это пример curl:

$url = "http://url.com/login";  

$datos = array(
    'apikey'=>'isanapikey123',
    'user'=> array ( 
        'email'=>'trying@try.com',
        'password'=>'123', 
    ),
);

$content = array('data'=>json_encode($data));

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($content));
$json_response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $json_response;

В примере Curl я не понимаю, как формируется этот пользователь, каков его заголовок или тело, я не смог сделать сообщениев почтальоне

и это моя попытка в Android:

public class MainActivity extends AppCompatActivity {
    private static final String TAG = MainActivity.class.getSimpleName(); 
    private Button btn_login;
    String getid;
    private static String URL_LOGIN = "http://url.com/login";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn_login = findViewById(R.id.button_login);
        email = (TextView) findViewById(R.id.email);
        password = (TextView) findViewById(R.id.edit_password);
        btn_login = (Button) findViewById(R.id.button_login);
        RequestQueue requestQueue = Volley.newRequestQueue(this);

        btn_login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String email1 = email.getText().toString().trim();
                String password1 = password.getText().toString().trim();
                if (!email1.isEmpty() || !password1.isEmpty()) {
                    Login(email1, password1);
                } else {
                    email.setError("Por favor, introduzca el correo electrónico.");
                    password.setError("Por favor, introduzca su contraseña.");
                }
            }
        });
    }

    private void Login(final String email, final String password) {
        StringRequest stringRequest = new StringRequest((Request.Method.POST), URL_LOGIN,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {
                            JSONObject jsonObject = new JSONObject(response);
                            String success = jsonObject.getString("success");
                            JSONArray jsonArray = jsonObject.getJSONArray("login");

                            if (success.equals("1")) {

                                for (int i = 0; i < jsonArray.length(); i++) {

                                    JSONObject object = jsonArray.getJSONObject(i);



                                }
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();

                            Toast.makeText(MainActivity.this, "Error " + e.toString(), Toast.LENGTH_SHORT).show();
                        }

                    }
                },
                new Response.ErrorListener() {


                    @Override
                    public void onErrorResponse(VolleyError error) {


                    }
                }) {
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> params = new HashMap<>();
                params.put("apikey", "isanapikey123");
                params.put("email", email);
                params.put("password", password);
                return params;
            }
        };
        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);

    }
}
...