Android 我在使用Volley库使用api从json获取数据时遇到AuthfailureError,请告诉我解决方法
这是我在日志中得到的信息 04-05 19:06:54.892 30168-30168/? I/art:Late-enabling-Xcheck:jni 04-05 19:06:54.957 30168-30168/? D/TidaProvider:TidaProvider() 04-05 19:06:54.966 30168-30168/? W/ReflectionUtils:java.lang.NoSuchMethodException:android.os.MessageQueue#enableMonitor()#bestmatch 位于miui.util.ReflectionUtils.findMethodBestMatch(ReflectionUtils.java:338) 位于miui.util.ReflectionUtils.findMethodBestMatch(ReflectionUtils.java:375) 位于miui.util.ReflectionUtils.callMethod(ReflectionUtils.java:800) 位于miui.util.ReflectionUtils.tryCallMethod(ReflectionUtils.java:818) 位于android.os.BaseLooper.enableMonitor(BaseLooper.java:47) 在android.os.Looper.prepareMainLooper(Looper.java:111)上 位于android.app.ActivityThread.main(ActivityThread.java:5584) 位于java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:774)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:652) 04-05 19:06:55.034 30168-30168/com.example.inshorts W/ResourceType:获取资源号0x00000000的名称时没有包标识符 04-05 19:06:55.059 30168-30168/com.example.inshorts W/System:ClassLoader引用的未知路径:/data/app/com.example.inshorts-1/lib/arm64 04-05 19:06:55.284 30168-30168/com.example.inshorts W/ResourceType:获取资源号0x00000000的名称时没有包标识符 04-05 19:06:55.312 30168-30168/com.example.inshorts W/art:Android 4.1之前的方法Android.graphics.PorterDuffColorFilter androidx.vectordrawable.graphics.drawable.VectorDrawableCompat.UpdatentFilter(Android.graphics.PorterDuffColorFilter,Android.content.res.ColorStateList,Android.graphics.PorterDuff$模式)将错误地重写android.graphics.drawable.drawable中的包私有方法 04-05 19:06:55.356 30168-30168/com.example.inshorts D/AccessibilityManager:current package=com.example.inshorts,辅助功能管理器mIsFinalEnabled=false,mOptimizeEnabled=false,mIsUiAutomationEnabled=false,misterestedpackage=false 04-05 19:06:55.384 30168-30168/com.example.inshorts I/art:拒绝在以前失败的类java.lang.class上重新初始化 04-05 19:06:57.999 30168-30205/com.example.inshorts E/Volley:[22082]BasicNetwork.performRequest:的意外响应代码403 04-05 19:06:58.040 30168-30168/com.example.inshorts I/Toast:Show Toast from OpPackageName:com.example.inshorts,PackageName:com.example.inshorts 04-05 19:06:58.241 30168-30210/com.example.inshorts V/RenderScript:0x5569efdac0启动线程,CPU 8Android 我在使用Volley库使用api从json获取数据时遇到AuthfailureError,请告诉我解决方法,android,json,android-studio,parsing,android-volley,Android,Json,Android Studio,Parsing,Android Volley,这是我在日志中得到的信息 04-05 19:06:54.892 30168-30168/? I/art:Late-enabling-Xcheck:jni 04-05 19:06:54.957 30168-30168/? D/TidaProvider:TidaProvider() 04-05 19:06:54.966 30168-30168/? W/ReflectionUtils:java.lang.NoSuchMethodException:android.os.MessageQueue#ena
*package com.example.inshorts;
导入android.app.LoaderManager;
导入android.os.Bundle;
导入android.util.Log;
导入android.widget.ProgressBar;
导入android.widget.Toast;
导入androidx.appcompat.app.appcompat活动;
导入androidx.recyclerview.widget.LinearLayoutManager;
导入androidx.recyclerview.widget.recyclerview;
导入com.android.volley.AuthFailureError;
导入com.android.volley.Request;
导入com.android.volley.RequestQueue;
导入com.android.volley.Response;
导入com.android.volley.VolleyError;
导入com.android.volley.toolbox.JsonArrayRequest;
导入com.android.volley.toolbox.JsonObjectRequest;
导入com.android.volley.toolbox.StringRequest;
导入com.android.volley.toolbox.volley;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
公共类MainActivity扩展了AppCompatActivity{
私人回收视图topheadlinesRecycleView;
私有新闻适配器;
private final List TopHeadings=新建ArrayList();
每页专用整数=20;
私有静态最终字符串newsapiUrl=”https://newsapi.org/v2/everything?q=tesla&from=2021-03-05&sortBy=publishedAt&apiKey=*****************”;
在这里输入代码
私有字符串日志标签;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
topheadlinesRecycleView=findViewById(R.id.RecyleView);
//实例化RequestQueue。
RequestQueue=Volley.newRequestQueue(this);
//从提供的URL请求字符串响应。
StringRequest StringRequest=新的StringRequest(Request.Method.GET,newsapiUrl,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
//显示响应字符串的前500个字符。
试一试{
JSONObject JSONObject=新JSONObject(响应);
JSONArray newsArray=jsonObject.getJSONArray(“文章”);
对于(int i=0;i
I am getting AuthfailureError on using Volley library to fetch data from json using api and data is not displayed in the app and i am using recycleView to use that pls tell me the way to solve it. using newsapi.
*package com.example.inshorts;
import android.app.LoaderManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.ProgressBar;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.android.volley.AuthFailureError;
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.JsonArrayRequest;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private RecyclerView topheadlinesRecycleView;
private NewsAdapter newsAdapter;
private final List<NewsContent> topHeadlines=new ArrayList<>();
private int per_page=20;
private static final String newsapiUrl="https://newsapi.org/v2/everything?q=tesla&from=2021-03-05&sortBy=publishedAt&apiKey=***************";
enter code here
private String LOGTag;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
topheadlinesRecycleView= findViewById(R.id.RecyleView);
//Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(this);
// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET, newsapiUrl,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// Display the first 500 characters of the response string.
try {
JSONObject jsonObject=new JSONObject(response);
JSONArray newsArray=jsonObject.getJSONArray("articles");
for(int i=0;i<newsArray.length();i++){
JSONObject jsonObject1=newsArray.getJSONObject(i);
String title=jsonObject1.getString("title");
String description=jsonObject1.getString("description");
String urlImage=jsonObject1.getString("");
}
} catch (JSONException e) {
Toast.makeText(getApplicationContext(),"data not found",Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(),error.toString()+ "data not found",Toast.LENGTH_LONG).show();
Log.d(LOGTag,error.toString());
}
});
// Add the request to the RequestQueue.
queue.add(stringRequest);
newsAdapter=new NewsAdapter(topHeadlines,this);
final LinearLayoutManager layoutManager=new LinearLayoutManager(this);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
topheadlinesRecycleView.setLayoutManager(new LinearLayoutManager(this));
topheadlinesRecycleView.setAdapter(newsAdapter);
newsAdapter.notifyDataSetChanged();
}
}