Java 如何在android Studio中启用httpclient?

Java 如何在android Studio中启用httpclient?,java,android,Java,Android,救命啊!如何在我的android Studio中启用以下httpclient?似乎找不到NameValuePair、BasicNameValuePair、Httpclient、Httppost,显然我的HTTPConnectionParams被删除了?如何解决这些问题 ArrayList<NameValuePair> dataToSend = new ArrayList<>(); dataToSend.add(new BasicNameValueP

救命啊!如何在我的android Studio中启用以下httpclient?似乎找不到NameValuePair、BasicNameValuePair、Httpclient、Httppost,显然我的HTTPConnectionParams被删除了?如何解决这些问题

ArrayList<NameValuePair> dataToSend = new ArrayList<>();
            dataToSend.add(new BasicNameValuePair("name",user.name));
            dataToSend.add(new BasicNameValuePair("email",user.email));
            dataToSend.add(new BasicNameValuePair("password",user.password));

            HttpParams httpRequestParams = new BasicHttpParams();
            HttpConnectionParams.setConnectionTimeout(httpRequestParams, CONNECTION_TIMEOUT);
            HttpConnectionParams.setSoTimeout(httpRequestParams, CONNECTION_TIMEOUT);

            HttpClient client = new DefaultHttpClient(httpRequestParams);
            HttpPost post = new HttpPost(SERVER_ADDRESS + "Register.php");

            try{
                post.setEntity(new UrlEncodedFormEntity(dataToSend));
                client.execute(post);
            }catch (Exception e) {
                e.printStackTrace();
            }
ArrayList dataToSend=new ArrayList();
添加(新的BasicNameValuePair(“name”,user.name));
添加(新的BasicNameValuePair(“email”,user.email));
添加(新的BasicNameValuePair(“密码”,user.password));
HttpParams httpRequestParams=新的BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpRequestParams,连接超时);
HttpConnectionParams.setSoTimeout(httpRequestParams,连接超时);
HttpClient客户端=新的默认HttpClient(httpRequestParams);
HttpPost=newhttppost(服务器地址+“Register.php”);
试一试{
post.setEntity(新的UrlEncodedFormEntity(dataToSend));
客户。执行(post);
}捕获(例外e){
e、 printStackTrace();
}

我假设您可能正在使用sdk 23+,尝试使用URLConnection或降级到sdk 22。

我假设您可能正在使用sdk 23+,尝试使用URLConnection或降级到sdk 22。

我最近不得不更改几乎所有代码,因为该库已被弃用。我相信有人建议我们从现在开始使用最初的Java net库

试试下面的方法

try{
    URL url = new URL(SERVER_ADDRESS + "Register.php");
    HttpURLConnection connection = (HttpURLConnection)url.openConnection();
    connection.setRequestMethod("POST");
    connection.setDoOutput(true);
    connection.setConnectTimeout(CONNECTION_TIMEOUT);
    String postData = URLEncoder.encode("name","UTF-8")
                        +"="+URLEncoder.encode(user.name,"UTF-8");
    postData += "&"+URLEncoder.encode("email","UTF-8")
                        +"="+URLEncoder.encode(user.email,"UTF-8");
    postData += "&"+URLEncoder.encode("password","UTF-8")
                        +"="+URLEncoder.encode(user.password,"UTF-8");
    OutputStreamWriter outputStreamWriter = new
    OutputStreamWriter(connection.getOutputStream());
    outputStreamWriter.write(postData);
    outputStreamWriter.flush();
    outputStreamWriter.close();
  }catch(IOException e){
    e.printStackTrace();
  }

希望它有帮助

我最近不得不更改几乎所有的代码,因为该库已被弃用。我相信有人建议我们从现在开始使用最初的Java net库

试试下面的方法

try{
    URL url = new URL(SERVER_ADDRESS + "Register.php");
    HttpURLConnection connection = (HttpURLConnection)url.openConnection();
    connection.setRequestMethod("POST");
    connection.setDoOutput(true);
    connection.setConnectTimeout(CONNECTION_TIMEOUT);
    String postData = URLEncoder.encode("name","UTF-8")
                        +"="+URLEncoder.encode(user.name,"UTF-8");
    postData += "&"+URLEncoder.encode("email","UTF-8")
                        +"="+URLEncoder.encode(user.email,"UTF-8");
    postData += "&"+URLEncoder.encode("password","UTF-8")
                        +"="+URLEncoder.encode(user.password,"UTF-8");
    OutputStreamWriter outputStreamWriter = new
    OutputStreamWriter(connection.getOutputStream());
    outputStreamWriter.write(postData);
    outputStreamWriter.flush();
    outputStreamWriter.close();
  }catch(IOException e){
    e.printStackTrace();
  }

希望它有帮助,BasicNameValuePair也不推荐使用。使用HashMap发送键和值

HashMap文档:

使用此方法将数据发布到“yourFiles.php”

公共字符串performPostCall(字符串请求URL、HashMap postDataParams){
网址;
字符串响应=”;
试一试{
url=新url(请求url);
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
连接设置读取超时(15000);
连接设置连接超时(15000);
conn.setRequestMethod(“POST”);
conn.setDoInput(真);
连接设置输出(真);
OutputStream os=conn.getOutputStream();
BufferedWriter=新的BufferedWriter(
新的OutputStreamWriter(操作系统,“UTF-8”);
write(getPostDataString(postDataParams));
writer.flush();
writer.close();
os.close();
int responseCode=conn.getResponseCode();
if(responseCode==HttpsURLConnection.HTTP\u确定){
弦线;
BufferedReader br=新的BufferedReader(新的InputStreamReader(conn.getInputStream());
而((line=br.readLine())!=null){
响应+=行;
}
}
否则{
答复=”;
抛出新的HttpException(responseCode+“”);
}
}捕获(例外e){
e、 printStackTrace();
}
返回响应;
}
私有字符串getPostDataString(映射参数)引发UnsupportedEncodingException{
StringBuilder结果=新建StringBuilder();
布尔值优先=真;
对于(Map.Entry:params.entrySet()){
如果(第一)
第一个=假;
其他的
结果。追加(&);
append(URLEncoder.encode(entry.getKey(),“UTF-8”);
结果。追加(“=”);
append(URLEncoder.encode(entry.getValue(),“UTF-8”);
}
返回result.toString();
}

BasicNameValuePair也不推荐使用。使用HashMap发送键和值

HashMap文档:

使用此方法将数据发布到“yourFiles.php”

公共字符串performPostCall(字符串请求URL、HashMap postDataParams){
网址;
字符串响应=”;
试一试{
url=新url(请求url);
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
连接设置读取超时(15000);
连接设置连接超时(15000);
conn.setRequestMethod(“POST”);
conn.setDoInput(真);
连接设置输出(真);
OutputStream os=conn.getOutputStream();
BufferedWriter=新的BufferedWriter(
新的OutputStreamWriter(操作系统,“UTF-8”);
write(getPostDataString(postDataParams));
writer.flush();
writer.close();
os.close();
int responseCode=conn.getResponseCode();
if(responseCode==HttpsURLConnection.HTTP\u确定){
弦线;
BufferedReader br=新的BufferedReader(新的InputStreamReader(conn.getInputStream());
而((line=br.readLine())!=null){
响应+=行;
}
}
否则{
答复=”;
抛出新的HttpException(responseCode+“”);
}
}捕获(例外e){
e、 printStackTrace();
}
返回响应;
}
私有字符串getPostDataString(映射参数)引发UnsupportedEncodingException{
StringBuilder结果=新建StringBuilder();
布尔值优先=真;
对于(Map.Entry:params.entrySet()){
如果(第一)
第一个=假;
其他的
结果。追加(&);
append(URLEncoder.encode(entry.getKey(),“UTF-8”);
结果。追加(“=”);
append(URLEncoder.encode(entry.getValue(),“UTF-8”);
}
返回result.toString();
}

您也可以使用谷歌截击库来完成您的工作

使用库的示例:

RequestQueue queue = Volley.newRequestQueue(activity);
                StringRequest strRequest = new StringRequest(Request.Method.POST, "Your URL",
                        new Response.Listener<String>() {
                            @Override
                            public void onResponse(String response) {
                                VolleyLog.d("Home_Fragment", "Error: " + response);
                                Toast.makeText(activity, "Success", Toast.LENGTH_SHORT).show();
                            }
                        },
                        new Response.ErrorListener() {
                            @Override
                            public void onErrorResponse(VolleyError error) {
                                VolleyLog.d(getApplicationContext(), "Error: " + error.getMessage());
                                Toast.makeText(activity, error.toString(), Toast.LENGTH_SHORT).show();
                            }
                        }) {
                    @Override
                    protected Map<String, String> getParams() {
                        Map<String, String> params = new HashMap<>();
                        params.put("name", user.name);
                        params.put("email", user.email;
                        params.put("password", user.password);

                        return params;
                    }
                };
                queue.add(strRequest);

);
RequestQueue=Volley.newRequestQueue(活动);
StringRequest strRequest=新建StringRequest(Request.Method.POST,“您的URL”,