Java E/Volley:[6074]基本网络。性能请求:的意外响应代码403 activity_main.xml

Java E/Volley:[6074]基本网络。性能请求:的意外响应代码403 activity_main.xml,java,android,api,android-volley,android-glide,Java,Android,Api,Android Volley,Android Glide,MainActivity.java 包com.example.android.hdnews public class HDNews { private String title; private String author; private String image; public HDNews(String title, String author, String image) { this.title = title; th

MainActivity.java

包com.example.android.hdnews

public class HDNews {

    private String title;
    private String author;
    private String image;

    public HDNews(String title, String author, String image) {
        this.title = title;
        this.author = author;
        this.image = image;
    }

    public String getTitle() {
        return title;
    }

    public String getAuthor() {
        return author;
    }

    public String getImage() {
        return image;
    }
}
导入androidx.appcompat.app.appcompat活动; 导入androidx.recyclerview.widget.LinearLayoutManager; 导入androidx.recyclerview.widget.recyclerview

导入android.os.Bundle; 导入android.widget.LinearLayout

导入com.android.volley.NetworkResponse; 导入com.android.volley.Request; 导入com.android.volley.RequestQueue; 导入com.android.volley.Response; 导入com.android.volley.VolleyError; 导入com.android.volley.toolbox.JsonObjectRequest; 导入com.android.volley.toolbox.volley

导入org.json.JSONArray; 导入org.json.JSONException; 导入org.json.JSONObject; 导入java.util.ArrayList

公共类MainActivity扩展了AppCompatActivity{

私人回收站

私人ArrayList al

专用HDNewsAdapter HDNewsAdapter

私有请求队列请求队列

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    recyclerView=findViewById(R.id.rView);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    al=new ArrayList<HDNews>();
    requestQueue= Volley.newRequestQueue(this);
    extractingDataFromInternet();
}
//http://newsapi.org/v2/top-headlines?country=in&apiKey=94bf8bcc374b494485309e325e3656f9
public void extractingDataFromInternet(){
   String url="http://newsapi.org/v2/top-headlines?country=in&category=business&apiKey=94bf8bcc374b494485309e325e3656f9";
    JsonObjectRequest JsonObjReq=new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {

        @Override
        public void onResponse(JSONObject response) {
            try {
                JSONArray jsonArray = response.getJSONArray("articles");
                for (int i = 0; i < jsonArray.length(); i++) {
                    JSONObject ca = jsonArray.getJSONObject(i);
                    String authorNames = ca.optString("author");
                    String titleNames = ca.optString("title");
                    String imageUrls = ca.getString("urlToImage");
                    al.add(new HDNews(titleNames, authorNames, imageUrls));
                }
                hdNewsAdapter = new HDNewsAdapter(MainActivity.this, al);
                recyclerView.setAdapter(hdNewsAdapter);
            } catch ( JSONException e ) {
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {
       @Override
       public void onErrorResponse(VolleyError error) {
       }
   });
      requestQueue.add(JsonObjReq);
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView=findViewById(R.id.rView);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(新的LinearLayoutManager(本));
al=新的ArrayList();
requestQueue=Volley.newRequestQueue(this);
正在从Internet()提取数据;
}
//http://newsapi.org/v2/top-headlines?country=in&apiKey=94bf8bcc374b494485309e325e3656f9
public void从Internet提取数据(){
字符串url=”http://newsapi.org/v2/top-headlines?country=in&category=business&apiKey=94bf8bcc374b494485309e325e3656f9";
JsonObjectRequest JSONObjectReq=新的JsonObjectRequest(Request.Method.GET,url,null,new Response.Listener()){
@凌驾
公共void onResponse(JSONObject响应){
试一试{
JSONArray JSONArray=response.getJSONArray(“文章”);
for(int i=0;i
}

  • HDNewsAdapter

    包com.example.android.hdnews

    public class HDNews {
    
        private String title;
        private String author;
        private String image;
    
        public HDNews(String title, String author, String image) {
            this.title = title;
            this.author = author;
            this.image = image;
        }
    
        public String getTitle() {
            return title;
        }
    
        public String getAuthor() {
            return author;
        }
    
        public String getImage() {
            return image;
        }
    }
    
    导入android.content.Context; 导入android.view.LayoutInflater; 导入android.view.view; 导入android.view.ViewGroup; 导入android.widget.ImageView; 导入android.widget.TextView

    导入androidx.annotation.NonNull; 导入androidx.recyclerview.widget.recyclerview

    导入com.bumptech.glide.glide

    导入java.util.ArrayList

    公共类HDNewsAdapter扩展了RecyclerView.Adapter{

    私有上下文;
    私人ArrayList al;
    公共HDNewsAdapter(上下文,ArrayList al){
    this.context=上下文;
    this.al=al;
    }
    @非空
    @凌驾
    public HDNewsAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup父级,int-viewType){
    View views=LayoutInflater.from(parent.getContext()).flate(R.layout.activity_frame,parent,false);
    返回新的视图持有者(视图);
    }
    @凌驾
    public void onBindViewHolder(@NonNull ViewHolder,int位置){
    HDNews currentposition=al.get(位置);
    字符串imgurl=currentposition.getImage();
    字符串athName=currentposition.getAuthor();
    字符串TTELNAME=currentposition.getTitle();
    持有者.标题名称01.setText(名称);
    holder.authorName01.setText(athName);
    使用(context.load)(imgurl.into)滑动到(holder.imageurl01);
    }
    @凌驾
    public int getItemCount(){
    返回al.size();
    }
    公共类ViewHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{
    公共文本视图authorName01;
    公共文本视图标题名称01;
    公共图像查看图像URL01;
    公共视图持有者(@NonNull View itemView){
    超级(项目视图);
    authorName01=itemView.findviewbyd(R.id.textView1);
    titleName01=itemView.findViewById(R.id.textView2);
    imageurl01=itemView.findViewById(R.id.imageView);
    }
    @凌驾
    公共void onClick(视图){
    }
    }
    
    }


  • 请在这个问题上帮助我403错误意味着您的服务器禁止您的请求。请确保您已获得授权,后端可以满足您的请求。我无法理解,请解释。请查看REST响应代码。当您尝试获取此资源时,您需要提供您的登录/密码或访问令牌。请帮助我我的帐户被阻止
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        recyclerView=findViewById(R.id.rView);
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        al=new ArrayList<HDNews>();
        requestQueue= Volley.newRequestQueue(this);
        extractingDataFromInternet();
    }
    //http://newsapi.org/v2/top-headlines?country=in&apiKey=94bf8bcc374b494485309e325e3656f9
    public void extractingDataFromInternet(){
       String url="http://newsapi.org/v2/top-headlines?country=in&category=business&apiKey=94bf8bcc374b494485309e325e3656f9";
        JsonObjectRequest JsonObjReq=new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
    
            @Override
            public void onResponse(JSONObject response) {
                try {
                    JSONArray jsonArray = response.getJSONArray("articles");
                    for (int i = 0; i < jsonArray.length(); i++) {
                        JSONObject ca = jsonArray.getJSONObject(i);
                        String authorNames = ca.optString("author");
                        String titleNames = ca.optString("title");
                        String imageUrls = ca.getString("urlToImage");
                        al.add(new HDNews(titleNames, authorNames, imageUrls));
                    }
                    hdNewsAdapter = new HDNewsAdapter(MainActivity.this, al);
                    recyclerView.setAdapter(hdNewsAdapter);
                } catch ( JSONException e ) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
           @Override
           public void onErrorResponse(VolleyError error) {
           }
       });
          requestQueue.add(JsonObjReq);
    }
    
    private Context context;
    private ArrayList<HDNews> al;
    public HDNewsAdapter(Context context, ArrayList<HDNews> al) {
        this.context = context;
        this.al = al;
    }
    @NonNull
    @Override
    public HDNewsAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View views= LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_frame,parent,false);
        return new ViewHolder(views);
    }
    
    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
                HDNews currentposition=al.get(position);
                String imgurl=currentposition.getImage();
                String athName=currentposition.getAuthor();
                String ttleName=currentposition.getTitle();
        holder.titleName01.setText(ttleName);
        holder.authorName01.setText(athName);
        Glide.with(context).load(imgurl).into(holder.imageurl01);
    }
    
    @Override
    public int getItemCount() {
        return al.size();
    }
    
    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
        public TextView authorName01;
        public TextView titleName01;
        public ImageView imageurl01;
        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            authorName01=itemView.findViewById(R.id.textView1);
            titleName01=itemView.findViewById(R.id.textView2);
            imageurl01=itemView.findViewById(R.id.imageView);
        }
    
        @Override
        public void onClick(View view) {
    
        }
    }