Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.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
Java 基于用户名获取请求_Java_Android_Rest_Login_Get - Fatal编程技术网

Java 基于用户名获取请求

Java 基于用户名获取请求,java,android,rest,login,get,Java,Android,Rest,Login,Get,我正在为我的android应用程序添加一个用户登录,以提高安全性并识别用户。我有一个登录屏幕,用户首先从下拉列表中选择自己的名字。然后,它们的选择存储在名为userName的变量中 然后,我有6个框,用户在其中输入其唯一pin,该pin保存到名为userPin的变量中 我有一个oracle数据库表,其中有每个员工的用户名和pin,目前有一个REST服务,我正在使用它将数据从我的应用程序发送到同一架构中的不同表 我的问题是。。。首先,如何执行GET请求以从oracle数据库中获取与用户选择的用户名

我正在为我的android应用程序添加一个用户登录,以提高安全性并识别用户。我有一个登录屏幕,用户首先从下拉列表中选择自己的名字。然后,它们的选择存储在名为
userName
的变量中

然后,我有6个框,用户在其中输入其唯一pin,该pin保存到名为
userPin
的变量中

我有一个oracle数据库表,其中有每个员工的用户名和pin,目前有一个REST服务,我正在使用它将数据从我的应用程序发送到同一架构中的不同表

我的问题是。。。首先,如何执行GET请求以从oracle数据库中获取与用户选择的用户名关联的userPin

任何帮助都将不胜感激

代码尝试:

  private class AsyncTaskRunner extends AsyncTask<String, String, String> {
    @Override
    protected String doInBackground(String... params) {
        try {
            String url = "http://xxx.xx.xxx.xx:xxxx/engAppApi/webservices/userTable/Employee_Name=" + employee;

            URL object = new URL(url);

            HttpURLConnection con = (HttpURLConnection) object.openConnection();
            con.setDoOutput(true);
            con.setDoInput(true);
            con.setRequestProperty("Content-Type", "application/json");
            con.setRequestProperty("Accept", "application/json");
            con.setRequestMethod("GET");

            if (con.getResponseCode() == HttpsURLConnection.HTTP_OK) {
                String line;
                BufferedReader br=new BufferedReader(new InputStreamReader(con.getInputStream()));
                while ((line=br.readLine()) != null) {
                    userPinRetrieved+=line;
                }
            }

        } catch (Exception e) {
            Log.v("ErrorAPP", e.toString());
        }
        return "";
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
    }

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected void onProgressUpdate(String... values) {
        super.onProgressUpdate(values);
    }
}
私有类AsyncTaskRunner扩展了AsyncTask{
@凌驾
受保护的字符串doInBackground(字符串…参数){
试一试{
字符串url=”http://xxx.xx.xxx.xx:xxxx/engAppApi/webservices/userTable/Employee_Name=“+雇员;
URL对象=新URL(URL);
HttpURLConnection con=(HttpURLConnection)对象。openConnection();
con.设置输出(真);
con.setDoInput(真);
con.setRequestProperty(“内容类型”、“应用程序/json”);
con.setRequestProperty(“接受”、“应用程序/json”);
con.setRequestMethod(“GET”);
if(con.getResponseCode()==HttpsURLConnection.HTTP\u确定){
弦线;
BufferedReader br=新的BufferedReader(新的InputStreamReader(con.getInputStream());
而((line=br.readLine())!=null){
userPinRetrieved+=行;
}
}
}捕获(例外e){
Log.v(“ErrorAPP”,例如toString());
}
返回“”;
}
@凌驾
受保护的void onPostExecute(字符串s){
super.onPostExecute(s);
}
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
}
@凌驾
受保护的void onProgressUpdate(字符串…值){
super.onProgressUpdate(值);
}
}

}你的问题不是很清楚,你应该包括

  • 如何调用您的REST请求
  • 您为实现此目标所做的任何努力
  • 您得到的错误是什么
  • 对于调用任何REST请求(GET、POST、PUT、DELETE),您可以使用android库,这将使您的工作变得非常简单和高效。一些常用的库及其示例如下所示:-

    一,。
    我不太熟悉改装,所以这里有一个链接,你可以按照

    2.
    Volley由Google开发,并被程序员广泛用于开发Android应用程序

    调用GET请求的示例:-

    dependencies {
        ...
        compile 'com.android.volley:volley:1.1.0'
    }
    
    上面的代码用于将库添加到项目中

    String url = "http://xxx.xx.xxx.xx:xxxx/engAppApi/webservices/userTable/Employee_Name=" + employee;
    
     //creating a string request to send the request to the URL
        StringRequest stringRequest = new StringRequest(Request.Method.GET, JSON_URL,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                    //Printing Your Response To LOGCAT
                     Log.d("VolleyResponse","Response:- "+response);    
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                     //Printing Your Error Response To LOGCAT
                     Log.e("VolleyResponse","Error Response:- "+error.getMessage());
                    }
                });
    
        //creating a request queue
        RequestQueue requestQueue = Volley.newRequestQueue(this);
    
        //adding the string request to request queue
        requestQueue.add(stringRequest);
    
    stringurl=”http://xxx.xx.xxx.xx:xxxx/engAppApi/webservices/userTable/Employee_Name=“+雇员;
    //创建字符串请求以将请求发送到URL
    StringRequest StringRequest=新的StringRequest(Request.Method.GET,JSON_URL,
    新的Response.Listener(){
    @凌驾
    公共void onResponse(字符串响应){
    //打印您对LOGCAT的响应
    Log.d(“截击反应”,“反应:-”+反应);
    }
    },
    新的Response.ErrorListener(){
    @凌驾
    公共无效onErrorResponse(截击错误){
    //将错误响应打印到LOGCAT
    Log.e(“截击响应”,“错误响应:-“+Error.getMessage());
    }
    });
    //创建请求队列
    RequestQueue RequestQueue=Volley.newRequestQueue(this);
    //将字符串请求添加到请求队列
    添加(stringRequest);
    

    有关截击的更多信息,请点击链接。

    分享您的代码,并解释您卡在哪里以及您遇到的错误getting@Thunder代码补充我感谢你的评论,我会更新我试图达到的目标,我正在尝试获取与从下拉菜单中选择的任何员工姓名关联的pin?请尝试上面编辑的代码,确保替换URL并添加依赖项和INTERNET权限@AndroidBeginner2018这能找回pin吗?你最好试试看,并检查日志以获得响应