Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 连接到RESTful api_Android_Api_Rest - Fatal编程技术网

Android 连接到RESTful api

Android 连接到RESTful api,android,api,rest,Android,Api,Rest,我需要帮助才能连接到此api 这是一份文件: 该网站的例子是在php,我不明白 我有公钥和私钥 请帮我接通 我试过了 url = "http://www.jazzradio.fr/api/news" List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("limit", "20")); p

我需要帮助才能连接到此api 这是一份文件:

该网站的例子是在php,我不明白

我有公钥和私钥

请帮我接通 我试过了

url = "http://www.jazzradio.fr/api/news"
List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("limit", "20"));
            params.add(new BasicNameValuePair("private_key ", "***"));
            JSONObject json = jParser.makeHttpRequest(url, "GET", params);
url=”http://www.jazzradio.fr/api/news"
List params=new ArrayList();
参数添加(新的BasicNameValuePair(“限制”,“20”));
添加参数(新的BasicNameValuePair(“私钥”、“***”);
JSONObject json=jParser.makeHttpRequest(url,“GET”,参数);
这是真的吗?

老派是这样的:(截击没有问题)

使用截击:

在MainActivity.java中的OnCreate()、OnStart()或OnResume()中,具体取决于应用程序:

private void getClientResource() {
       final RequestQueue  mRequestQueue = Volley.newRequestQueue(this);

       Resources resources = getResources();
       URL url = null;
       try {
           url = new URL(resources.getString(R.string.your_url_here));
       }
       catch (MalformedURLException e) {
           e.printStackTrace();
       }
       final String urlString = url.toString();

       final Response.Listener<JSONObject> responseListener = new Response.Listener<JSONObject>() {

           @Override
           public void onResponse(JSONObject response) {
               VolleyLog.v("Response: %s", response.toString());
               // parse JSON response here
           }
       };

       final Response.ErrorListener errorListener = new Response.ErrorListener() {
               @Override
               public void onErrorResponse(VolleyError error) {
                   VolleyLog.e("Error.Response: %s", error.toString());
                   Log.e("Error.Response: %s", error.toString());
                   if(error instanceof NoConnectionError) {
                       Toast.makeText(mActivity, "No internet available", Toast.LENGTH_SHORT).show();
                   }
                   else if(error instanceof ServerError) {
                       Toast.makeText(mActivity, "Invalid username/password", Toast.LENGTH_SHORT).show();
                   }
                   else if(error instanceof AuthFailureError) {
                       Toast.makeText(mActivity, "AuthFailureError", Toast.LENGTH_SHORT).show();
                   }
                   else if(error instanceof NetworkError) {
                       Toast.makeText(mActivity, "NetworkError", Toast.LENGTH_SHORT).show();
                   }
                   else if(error instanceof ParseError) { 
                       Toast.makeText(mActivity, "ParseError: ", Toast.LENGTH_SHORT).show();
                   }
                   else if(error instanceof VolleyError) {
                       Toast.makeText(mActivity, "VolleyError", Toast.LENGTH_SHORT).show();
                   }
                   else if(error instanceof TimeoutError) {
                       Toast.makeText(mActivity, "TimeoutError", Toast.LENGTH_SHORT).show();
                   }
                   else {
                       Toast.makeText(mActivity, "Error: " + error, Toast.LENGTH_SHORT).show();
                   }
               }
           };

           TaskJsonObjectRequest jsObjRequest = new TaskJsonObjectRequest(Request.Method.GET,
               urlString,
               null,
               responseListener,
               errorListener);

       mRequestQueue.add(jsObjRequest);
}
private void getClientResource(){
final RequestQueue mRequestQueue=Volley.newRequestQueue(this);
Resources=getResources();
URL=null;
试一试{
url=新url(resources.getString(R.string.your_url_here));
}
捕获(格式错误){
e、 printStackTrace();
}
最后一个字符串urlString=url.toString();
final Response.Listener responseListener=new Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
v(“响应:%s”,Response.toString());
//在这里解析JSON响应
}
};
final Response.ErrorListener ErrorListener=新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
e(“Error.Response:%s”,Error.toString());
Log.e(“Error.Response:%s”,Error.toString());
if(错误实例of NoConnectionError){
Toast.makeText(mActivity,“没有可用的互联网”,Toast.LENGTH_SHORT.show();
}
else if(服务器错误实例){
Toast.makeText(mActivity,“无效用户名/密码”,Toast.LENGTH_SHORT.show();
}
else if(AuthFailureError的错误实例){
Toast.makeText(mActivity,“AuthFailureError”,Toast.LENGTH_SHORT.show();
}
else if(网络错误实例error){
Toast.makeText(mActivity,“NetworkError”,Toast.LENGTH_SHORT.show();
}
else if(error instanceof ParseError){
Toast.makeText(mActivity,“ParseError:”,Toast.LENGTH_SHORT.show();
}
else if(截击错误的错误实例){
Toast.makeText(mActivity,“截击错误”,Toast.LENGTH_SHORT.show();
}
else if(TimeoutError的错误实例){
Toast.makeText(mActivity,“TimeoutError”,Toast.LENGTH_SHORT.show();
}
否则{
Toast.makeText(mActivity,“Error:+Error,Toast.LENGTH_SHORT).show();
}
}
};
TaskJsonObjectRequest jsObjRequest=新TaskJsonObjectRequest(Request.Method.GET,
URL字符串,
无效的
负责人,
错误监听器);
mRequestQueue.add(jsObjRequest);
}
TaskJsonObjectRequest.java

import android.util.Base64;

import com.android.volley.AuthFailureError;
import com.android.volley.Response;
import com.android.volley.toolbox.JsonObjectRequest;

import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

public class TaskJsonObjectRequest extends JsonObjectRequest {

    public TaskJsonObjectRequest(int requestMethod,
                                 String url,
                                 JSONObject jsonRequest,
                                 Response.Listener<JSONObject> listener,
                                 Response.ErrorListener errorListener) {
        super(requestMethod,
                url, //String url,
                jsonRequest, // JSONObject ,
                listener, // Response.Listener<JSONObject> ,
                errorListener); // Response.ErrorListener errorListener)
    }

    @Override
    public Map<String, String> getHeaders() throws AuthFailureError {
        Map<String, String> headers = new HashMap<String, String>();
        String auth = "Basic " + Base64.encodeToString(("yi_z:secret").getBytes(), Base64.NO_WRAP);
        headers.put("Authorization", auth);
        return headers;

    }
}
导入android.util.Base64;
导入com.android.volley.AuthFailureError;
导入com.android.volley.Response;
导入com.android.volley.toolbox.JsonObjectRequest;
导入org.json.JSONObject;
导入java.util.HashMap;
导入java.util.Map;
公共类TaskJsonObjectRequest扩展了JsonObjectRequest{
公共任务JSONObjectRequest(int requestMethod,
字符串url,
JSONObject jsonRequest,
回应,听众,
Response.ErrorListener(错误监听器){
超级方法,
url,//字符串url,
jsonRequest,//JSONObject,
侦听器,//Response.listener,
errorListener);//Response.errorListener errorListener)
}
@凌驾
公共映射getHeaders()引发AuthFailureError{
Map headers=newhashmap();
字符串auth=“Basic”+Base64.encodeToString((“yi_z:secret”).getBytes(),Base64.NO_WRAP);
headers.put(“授权”,auth);
返回标题;
}
}

use volley for rest api是volley做每件事并连接到此api吗?是的,volley是Google library for rest api,您需要调用一些方法使其工作我很抱歉,但是如何在volley中发送公钥和私钥进行身份验证响应是:
{“error”:{“code”:401,“title”:“Unauthorized#0”}
您指什么“没有工作”?它是否进入HTTP_STATUS_OK if语句中?>您可能需要添加导入语句。我已经在上面添加了它们。可能还有更多,您需要搜索。
import android.util.Base64;

import com.android.volley.AuthFailureError;
import com.android.volley.Response;
import com.android.volley.toolbox.JsonObjectRequest;

import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

public class TaskJsonObjectRequest extends JsonObjectRequest {

    public TaskJsonObjectRequest(int requestMethod,
                                 String url,
                                 JSONObject jsonRequest,
                                 Response.Listener<JSONObject> listener,
                                 Response.ErrorListener errorListener) {
        super(requestMethod,
                url, //String url,
                jsonRequest, // JSONObject ,
                listener, // Response.Listener<JSONObject> ,
                errorListener); // Response.ErrorListener errorListener)
    }

    @Override
    public Map<String, String> getHeaders() throws AuthFailureError {
        Map<String, String> headers = new HashMap<String, String>();
        String auth = "Basic " + Base64.encodeToString(("yi_z:secret").getBytes(), Base64.NO_WRAP);
        headers.put("Authorization", auth);
        return headers;

    }
}