您的位置:首页 > 理论基础 > 计算机网络

Android 发送http请求

2018-02-20 12:48 211 查看
get方式提交参数
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

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

public class MainActivity extends Activity {

// 设置一个路径
private String path = "http://10.0.2.2:8080/day10_login/loginServit";

private EditText et_username;
private EditText et_password;
// Button bt_login;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_username = (EditText) findViewById(R.id.et_password);
et_password = (EditText) findViewById(R.id.et_username);
//bt_login = (Button) findViewById(R.id.bt_login);
}

public void login(View v) {
new Thread() {
public void run() {
// 获取输入的账号和密码
String username = et_username.getText().toString().trim();
String password = et_password.getText().toString().trim();
String address = path + "?username=" + username + "&password="
+ password;
try {
URL uri = new URL(address);
HttpURLConnection openConnection = (HttpURLConnection) uri
.openConnection();
// 设置请求方式
openConnection.setRequestMethod("GET");
// 设置请求超时的是金
openConnection.setConnectTimeout(10000);
// 获取响应吗
int code = openConnection.getResponseCode();
// 判断响应吗状态
if (code == 200) {
// 获取输入流
InputStream inputStream = openConnection
.getInputStream();
// 将读取的东西转换为字符串
String result = Utils.getString(inputStream);
showToast(result);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};

}.start();
}

public void showToast(final String result) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), result,
Toast.LENGTH_SHORT).show();
}
});
}

}
post方式提交数据:import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

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

public class MainActivity extends Activity {

private EditText et_username;
private EditText et_password;
private Button bt_login;
private String path="http://10.0.2.2:8080/day10_login/loginServit";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_username = (EditText) findViewById(R.id.et_username);
et_password = (EditText) findViewById(R.id.et_password);
bt_login = (Button) findViewById(R.id.bt_login);
//给按钮设置监听事件
bt_login.setOnClickListener(new MyOnclickListener());
}
public class MyOnclickListener implements OnClickListener{

@Override
public void onClick(View v) {
//创建子线程,并启动
new Thread(){
public void run() {
//获取输入的账号和密码
String username = et_username.getText().toString().trim();
String password = et_password.getText().toString().trim();
//设置参数
String params = "username="+username+"&password="+password;
//设置网络
try {
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//设置请求的方式
connection.setRequestMethod("POST");
//设置请求超时事件
connection.setConnectTimeout(10000);
//设置两个请求头
connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
//告诉服务器传递数据的长度
connection.setRequestProperty("Content-Length", String.valueOf(params.length()));
//打开输出流
connection.setDoOutput(true);
//通过流把数据写到服务端
connection.getOutputStream().write(params.getBytes());
//获取响应吗
int code = connection.getResponseCode();
//判断响应吗的状态
if(code==200){
InputStream inputStream = connection.getInputStream();
String result = Utils.getString(inputStream);
showToast(result);
}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}.start();
}

}
public void showToast(final String result){
runOnUiThread(new Runnable() {

@Override
public void run() {
Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT).show();
}
});
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐