-2
votes

Code de réponse 403 inattendu lors de la récupération des données des API

Je veux récupérer des données à partir de certaines api, je ne sais pas où je me trompe dans mon logcat, son erreur indiquant que le code de réponse inattendu 403 est mon activité principale

ceci est mon logcat pls aidez-moi à résoudre cette erreur je suis un débutant

public class MainActivity extends AppCompatActivity {
    RequestQueue queue;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    queue=MySingleton.getInstance(this).getmRequestQueue();
    getList();
}
ArrayList getList(){
    JsonObjectRequest jsonObjectRequest =new JsonObjectRequest(Request.Method.GET,
            "https://newsapi.org/v2/top-headlines?country=in&apiKey=e613af58839749aab8f66bba967ab5a8", null
            , new Response.Listener() {
        @Override
        public void onResponse(JSONObject response) {
                try {

                    String val=response.getString("status");
                    Log.d("json","status : "+val);
                    //i want to see this val in my logcat but its giving an error

                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    });
    queue.add(jsonObjectRequest);
    return questionsobjectList;

}


3 commentaires

Salut, j'utilise l'URL correcte car j'essaie de la charger dans le navigateur et cela fonctionne bien, mais lorsque j'y accède à partir de l'application Android, cela donne une erreur


même erreur que je rencontre dans apis newapi.org.


y a-t-il un moyen de se débarrasser de ce problème


4 Réponses :


1
votes

Récemment, Newsapi.org a déclaré que la version gratuite de l'api n'est disponible que pour l'hôte local, si vous souhaitez accéder gratuitement (clé de développeur), hébergez-la dans votre service backend ou créez votre propre api de repos en utilisant cette clé.

capture d'écran de la politique


2 commentaires

y a-t-il un moyen par lequel je peux l'héberger dans mon backend, pouvez-vous me fournir des étapes pour le faire


Oui, pour cela, j'ai déjà hébergé un serveur API sur tns-news-api.herokuapp.com . vous pouvez l'utiliser ou créer votre propre backend et héberger librement sur heroku, glitch etc. Pour ma documentation api, vous pouvez me contacter +91 9004869069



0
votes

Même est-ce que j'ai fait face. Mais quand je change la bibliothèque de volée pour rénover son travail comme un charme.


0 commentaires

0
votes

L'ajout d'un getHeader personnalisé à la demande peut aider. Pour ce faire, ajoutez un objet: avant la construction de la requête, et la fonction getHeader mentionnée ci-dessous.


2 commentaires

pouvez-vous écrire ce même code en java?


@yashgupta stackoverflow.com/questions/35218464/… Veuillez suivre ceci ici, ils ont implémenté en java



0
votes

Essayez ce fichier d'en-tête en java:

@Throws(AuthFailureError::class)
fun getHeaders(): Map<String, String>? {
    val headers = HashMap<String, String>()
    //headers.put("Content-Type", "application/json");
    headers["key"] = "Value"
    return headers
}

ou en kotlin:

@Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            HashMap<String, String> headers = new HashMap<String, String>();
            //headers.put("Content-Type", "application/json");
            headers.put("key", "Value");
            return headers;
        }


0 commentaires