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