我想获取Dailymotion的趋势视频列表,但我不知道在哪里以及如何使用Dailymotion api键...
我也参考了此链接How to get dailymotion videos list,但无法解决...我应该更改url或api键的放置吗?预先感谢。
公共类VideoList扩展了AppCompatActivity { 公共静态最终字符串url =“ https://api.dailymotion.com/videos”;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_list);
loadvideos();
}
private void loadvideos() {
final Map<String,String> jsonparams=new HashMap<String, String>();
jsonparams.put("API Key","74d97adcb4cd05bc4efe");
StringRequest stringRequest=new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("Volley","onResponse"+response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("Volley","onErrorResponse"+error);
if(error.networkResponse.data!=null){
try {
VolleyLog.d(new String(error.networkResponse.data,"UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
}){
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String,String> header= new HashMap<String, String>();
header.put("Content-Type", "application/json; charset=UTF-8");
String credentials="74d97adcb4cd05bc4efe";
String base64EncodedCredentials = Base64.encodeToString(credentials.getBytes(), Base64.NO_WRAP);
HashMap<String, String> headers = new HashMap<>();
headers.put("Authorization", "Basic " + base64EncodedCredentials);
return header;
}
@Override
public byte[] getBody() throws AuthFailureError {
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("API Key","74d97adcb4cd05bc4efe");
} catch (JSONException e) {
e.printStackTrace();
}
String requestBody = jsonObject.toString();
Gson gson=new Gson();
String json=gson.toJson(jsonparams);
try {
return json == null ? null : json.getBytes("utf-8");
} catch (UnsupportedEncodingException uee) {
VolleyLog.wtf("Unsupported Encoding while trying to get the bytes of %s using %s", json, "utf-8");
return null;
}
}
};
RequestQueue requestQueue=Volley.newRequestQueue(VideoList.this);
requestQueue.add(stringRequest);
}
}
Logcat:12-24 02:25:30.779 23865-24155 / com.example.ayaz.videodownloader E / Volley:[16289] BasicNetwork.performRequest:https://api.dailymotion.com/videos的意外响应代码403 12-24 02:25:30.996 23865-24155 / com.example.ayaz.videodownloader E / Volley:[16289] BasicNetwork.performRequest:https://api.dailymotion.com/videos的意外响应代码403 12-24 02:25:30.998 23865-23865 / com.example.ayaz.videodownloader D / Volley:onErrorResponsecom.android.volley.AuthFailureError 12-24 02:25:30.999 23865-23865 / com.example.ayaz.videodownloader D / Volley:[1] 2.onErrorResponse:{“错误”:{“ more_info”:“ https://developer.dailymotion.com / api#error-codes“,” code“:403,” message“:”需要验证。“,” type“:” access_forbidden“}}