Php Android Studio-Android应用程序中的http连接处理

Php Android Studio-Android应用程序中的http连接处理,php,android,mysql,Php,Android,Mysql,我有问题。我无法连接到MySQL服务器。我遵循了这个教程simplifiedcoding.net/android-php-mysql-login-tutorial-android-login-app-3/,我想做一个简单的php-mysql登录。但有些东西,如“NameValuePair”、“BasicNameValuePair”、“HttpClient”、“HttpPost”、“HttpResponse”、“HttpEntity”、“UrlEncodedFormEntity”等等,都被弃用。我

我有问题。我无法连接到MySQL服务器。我遵循了这个教程simplifiedcoding.net/android-php-mysql-login-tutorial-android-login-app-3/,我想做一个简单的php-mysql登录。但有些东西,如“NameValuePair”、“BasicNameValuePair”、“HttpClient”、“HttpPost”、“HttpResponse”、“HttpEntity”、“UrlEncodedFormEntity”等等,都被弃用。我想问的是,有人能把这个编码对吗?还是帮我

以下是工作不正常的代码: (谢谢你的帮助)

@覆盖
受保护的字符串doInBackground(字符串…参数){
字符串uname=params[0];
字符串过程=参数[1];
InputStream=null;
List nameValuePairs=新的ArrayList();
添加(新的BasicNameValuePair(“用户名”,uname));
添加(新的BasicNameValuePair(“密码”,pass));
字符串结果=null;
试一试{
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost-HttpPost=newhttppost(“site.com/login.php”);
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
HttpResponse response=httpClient.execute(httpPost);
HttpEntity=response.getEntity();
is=entity.getContent();
BufferedReader reader=新的BufferedReader(新的InputStreamReader(is,“UTF-8”),8;
StringBuilder sb=新的StringBuilder();
字符串行=null;
而((line=reader.readLine())!=null)
{
sb.追加(第+行“\n”);
}
结果=sb.toString();
}捕获(客户端协议例外e){
e、 printStackTrace();
}捕获(不支持的编码异常e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回结果;
}

实际上,您发布的链接来自我的网站。当我编写本教程时,这些类并没有被弃用。如果你会检查我的网站,那么我已经发布了更新的教程

要向web服务器发送http post请求,可以使用以下代码

public class RequestHandler {
public String sendPostRequest(String requestURL,
                              HashMap<String, String> postDataParams) {
    URL url;

    StringBuilder sb = new StringBuilder();
    try {
        url = new URL(requestURL);

        HttpURLConnection conn = (HttpURLConnection) url.openConnection();

        conn.setReadTimeout(15000);
        conn.setConnectTimeout(15000);
        conn.setRequestMethod("POST");
        conn.setDoInput(true);
        conn.setDoOutput(true);

        OutputStream os = conn.getOutputStream();

        BufferedWriter writer = new BufferedWriter(
                new OutputStreamWriter(os, "UTF-8"));
        writer.write(getPostDataString(postDataParams));

        writer.flush();
        writer.close();
        os.close();
        int responseCode = conn.getResponseCode();

        if (responseCode == HttpsURLConnection.HTTP_OK) {

            BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            sb = new StringBuilder();
            String response;
            while ((response = br.readLine()) != null){
                sb.append(response);
            }
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
    return sb.toString();
}

private String getPostDataString(HashMap<String, String> params) throws UnsupportedEncodingException {
    StringBuilder result = new StringBuilder();
    boolean first = true;
    for (Map.Entry<String, String> entry : params.entrySet()) {
        if (first)
            first = false;
        else
            result.append("&");

        result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
        result.append("=");
        result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
    }

    return result.toString();
}
}
公共类RequestHandler{
公共字符串sendPostRequest(字符串请求URL,
HashMap postDataParams){
网址;
StringBuilder sb=新的StringBuilder();
试一试{
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());
sb=新的StringBuilder();
字符串响应;
而((response=br.readLine())!=null){
某人追加(答复);
}
}
}捕获(例外e){
e、 printStackTrace();
}
使某人返回字符串();
}
私有字符串getPostDataString(HashMap参数)引发UnsupportedEncodingException{
StringBuilder结果=新建StringBuilder();
布尔值优先=真;
对于(Map.Entry:params.entrySet()){
如果(第一)
第一个=假;
其他的
结果。追加(&);
append(URLEncoder.encode(entry.getKey(),“UTF-8”);
结果。追加(“=”);
append(URLEncoder.encode(entry.getValue(),“UTF-8”);
}
返回result.toString();
}
}
现在,您所需要做的就是在主活动内部创建一个AsyncTask和一个doInBackGround方法内部

调用sendPostRequest()方法

您必须传递脚本的url以处理post请求,并传递hashmap中的参数以随请求一起发送数据


有关更多详细信息,请访问

实际上,您发布的链接来自我的网站。当我编写本教程时,这些类并没有被弃用。如果你会检查我的网站,那么我已经发布了更新的教程

要向web服务器发送http post请求,可以使用以下代码

public class RequestHandler {
public String sendPostRequest(String requestURL,
                              HashMap<String, String> postDataParams) {
    URL url;

    StringBuilder sb = new StringBuilder();
    try {
        url = new URL(requestURL);

        HttpURLConnection conn = (HttpURLConnection) url.openConnection();

        conn.setReadTimeout(15000);
        conn.setConnectTimeout(15000);
        conn.setRequestMethod("POST");
        conn.setDoInput(true);
        conn.setDoOutput(true);

        OutputStream os = conn.getOutputStream();

        BufferedWriter writer = new BufferedWriter(
                new OutputStreamWriter(os, "UTF-8"));
        writer.write(getPostDataString(postDataParams));

        writer.flush();
        writer.close();
        os.close();
        int responseCode = conn.getResponseCode();

        if (responseCode == HttpsURLConnection.HTTP_OK) {

            BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            sb = new StringBuilder();
            String response;
            while ((response = br.readLine()) != null){
                sb.append(response);
            }
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
    return sb.toString();
}

private String getPostDataString(HashMap<String, String> params) throws UnsupportedEncodingException {
    StringBuilder result = new StringBuilder();
    boolean first = true;
    for (Map.Entry<String, String> entry : params.entrySet()) {
        if (first)
            first = false;
        else
            result.append("&");

        result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
        result.append("=");
        result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
    }

    return result.toString();
}
}
公共类RequestHandler{
公共字符串sendPostRequest(字符串请求URL,
HashMap postDataParams){
网址;
StringBuilder sb=新的StringBuilder();
试一试{
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());
sb=新的StringBuilder();
字符串响应;
而((response=br.readLine())!=null){