gpt4 book ai didi

android - 如何在 Android 中执行 HTTP Post?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:17:18 25 4
gpt4 key购买 nike

我是 android 应用程序开发的新手,我需要的是我有两个文本框用户名和密码,它将发布到服务器并使用 php 页面与数据库检查它,如果登录成功则转到下一个屏幕否则显示显示登录错误的消息框我该怎么做?

public void postData() {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://google.com");
EditText tw =(EditText) findViewById(R.id.EditText01);
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("id", "12345"));
nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
int status = response.getStatusLine().getStatusCode();

tw.setText(status);
} catch (ClientProtocolException e) {
tw.setText(e.toString());
} catch (IOException e) {
tw.setText(e.toString());
}
}

最佳答案

使用这个类:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class HttpLogin extends Activity {
/** Called when the activity is first created. */
private Button login;
private EditText username, password;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

login = (Button) findViewById(R.id.login);
username = (EditText) findViewById(R.id.username);
password = (EditText) findViewById(R.id.password);

login.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

String mUsername = username.getText().toString();
String mPassword = password.getText().toString();

tryLogin(mUsername, mPassword);
}
});
}

protected void tryLogin(String mUsername, String mPassword)
{
HttpURLConnection connection;
OutputStreamWriter request = null;

URL url = null;
String response = null;
String parameters = "username="+mUsername+"&password="+mPassword;

try
{
url = new URL("your login URL");
connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setRequestMethod("POST");

request = new OutputStreamWriter(connection.getOutputStream());
request.write(parameters);
request.flush();
request.close();
String line = "";
InputStreamReader isr = new InputStreamReader(connection.getInputStream());
BufferedReader reader = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
// Response from server after login process will be stored in response variable.
response = sb.toString();
// You can perform UI operations here
Toast.makeText(this,"Message from Server: \n"+ response, 0).show();
isr.close();
reader.close();

}
catch(IOException e)
{
// Error
}
}
}

main.xml 将是这样的:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText android:hint="Username" android:id="@+id/username" android:layout_width="fill_parent" android:layout_height="wrap_content"></EditText>
<EditText android:hint="Password" android:id="@+id/password" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="textPassword"></EditText>
<Button android:text="Sign In" android:id="@+id/login" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
</LinearLayout>

关于android - 如何在 Android 中执行 HTTP Post?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4470936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com