Java 无法从LH公共api生成访问令牌
我一直试图从LH公共API生成访问令牌,但当我使用Volley发送POST请求时,我得到了“com.android.Volley.AuthFailureError”Java 无法从LH公共api生成访问令牌,java,android,post,android-volley,Java,Android,Post,Android Volley,我一直试图从LH公共API生成访问令牌,但当我使用Volley发送POST请求时,我得到了“com.android.Volley.AuthFailureError” 包jvtech.jasvir; 导入android.support.v7.app.AppActivity; 导入android.os.Bundle; 导入android.view.view; 导入android.widget.Button; 导入android.widget.EditText; 导入android.widget.To
包jvtech.jasvir;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.Toast;
导入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.JSONException;
导入org.json.JSONObject;
公共类MainActivity扩展了AppCompatActivity{
编辑文本纬度、经度;
按钮提交;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
纬度=(编辑文本)findViewById(R.id.lat);
经度=(编辑文本)findViewById(R.id.lon);
提交=(按钮)findViewById(R.id.submit);
submit.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
字符串url=”https://api.lufthansa.com/v1/oauth/token";
String key=“abc”;
字符串secret=“abc”;
字符串grant_type=“abc”;
JSONObject对象=新的JSONObject();
试一试{
object.put(“客户端id”,密钥);
object.put(“客户机密”,secret);
object.put(“grant\u type”,grant\u type);
}
捕获(JSONException e)
{
e、 printStackTrace();
}
RequestQueue=Volley.newRequestQueue(MainActivity.this);
JsonObjectRequest=newJSONObjectRequest(request.Method.POST,url,object,new Response.Listener()){
@凌驾
公共void onResponse(JSONObject响应){
尝试
{
Toast.makeText(MainActivity.this,“+response.getString(“访问令牌”),Toast.LENGTH\u SHORT.show();
}
捕获(JSONException e)
{
e、 printStackTrace();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Toast.makeText(MainActivity.this,“+错误,Toast.LENGTH_SHORT.show();
}
});
添加(请求);
}
});
}}
收到令牌后,我想创建一个应用程序,根据输入的坐标显示最近的机场。到目前为止,这些纬度和经度变量与此无关。请帮忙。提前谢谢。祝你今天愉快 首先
我不认为RESTAPI接受JSON对象作为请求数据。
如果您看到他们的文档,就会看到“内容类型:application/x-www-form-urlencoded”
。
这意味着数据应以key1=value1&key2=value2…
将此作为发送x-www-form-uriencoded
类型请求的参考
在Map内部(我们使用Map来设置参数的Key=value类型),使用它们来设置请求参数
param.put("client_id","your client id");
param.put("client_secret", "your secret");
param.put("grant_type","client_credentials");
希望这是有帮助的。祝你一切顺利
param.put("client_id","your client id");
param.put("client_secret", "your secret");
param.put("grant_type","client_credentials");