首页 > 解决方案 > Android volley 令牌更改每个请求

问题描述

我想在查询网站上查询后得到有关imei地址的结果。该站点在查询期间输入了令牌,我可以按如下方式获取此令牌。但是当我运行第二个排球队列时,我反对令牌更改并且结果没有出现。我怎么解决这个问题。我质疑imei地址的网站和我的代码如下。

package com.myapp.query;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import android.os.Bundle;
import android.widget.Toast;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;

import androidx.appcompat.app.AppCompatActivity;

public class imeiSorgulama extends AppCompatActivity {

    StringRequest stringRequest;
    RequestQueue queue;
    String token, tag, value, tag2, value2, result;

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

        queue = Volley.newRequestQueue(this);

        final String url = "https://www.turkiye.gov.tr/imei-sorgulama";

        stringRequest = new StringRequest(Request.Method.GET, url,

                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                        tag     =  "<input type=\"hidden\" name=\"token\" value=\"";
                        value   = response.substring(response.indexOf(tag) + tag.length());

                        token  = value.substring(0, value.indexOf("\""));

                        try {
                            token = URLEncoder.encode(token,"UTF-8");
                        } catch (UnsupportedEncodingException e) {
                            e.printStackTrace();
                        }

                        imeiQuery();

                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(imeiSorgulama.this, error+"", Toast.LENGTH_SHORT).show();

                    }
                }
        );
        queue.add(stringRequest);
    }

    private void imeiQuery() {

        final String url = "https://www.turkiye.gov.tr/imei-sorgulama?submit";

        stringRequest = new StringRequest(Request.Method.POST, url,
                new Response.Listener<String>()
                {
                    @Override
                    public void onResponse(String response) {

                        tag2     =  "<dl class=\"compact\">";
                        value2   = response.substring(response.indexOf(tag2) + tag2.length());
                        result  = value2.substring(0, value2.indexOf("</dl>"));

                        Toast.makeText(imeiSorgulama.this, result+"", Toast.LENGTH_SHORT).show();
                    }
                },
                new Response.ErrorListener()
                {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(imeiSorgulama.this, error+"", Toast.LENGTH_SHORT).show();
                    }
                }
        ) {
            @Override
            protected Map<String, String> getParams()
            {
                Map<String, String>  params = new HashMap<String, String>();
                params.put("txtImei", "545454545454545");
                params.put("token=", token);

                return params;
            }

        };
        queue.add(stringRequest);
    }


}

标签: androidauthenticationcookiesandroid-volley

解决方案


推荐阅读