博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 子线程请求ASP.NET后台
阅读量:5112 次
发布时间:2019-06-13

本文共 4367 字,大约阅读时间需要 14 分钟。

首先定义布局文件,及点击事件

public class MainActivity extends Activity {    private final int MSG_HELLO = 0;    private Handler mHandler;    private Button btnSubmit;    private EditText txtUsername, txtPassword;    private TextView loginResult;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btnSubmit = (Button) findViewById(R.id.btnSubmit);        txtUsername = (EditText) findViewById(R.id.username);        txtPassword = (EditText) findViewById(R.id.password);        loginResult = (TextView) findViewById(R.id.loginResult);        btnSubmit.setOnClickListener(new OnClickLoginListener());    }    class OnClickLoginListener implements View.OnClickListener {        @Override        public void onClick(View view) {            String username = txtUsername.getText().toString();            String password = txtPassword.getText().toString();            // 登录请求地址            String url = "http://172.16.18.10:8080/Home/Login";            // 参数封装            Map
params = new HashMap
(); params.put("username",username); params.put("password",password); try { // 请求登录 String result = HttpUtils.postRequest(url, params); // 讲请求结果转换成 JSON 对象 JSONObject jsonObject = new JSONObject(result); String message = jsonObject.getString("message"); int status = jsonObject.getInt("status"); // 登录成功 if(status == 1) { Log.i("Login","登录成功!"); Intent it = new Intent(MainActivity.this, MainActivity2.class); Bundle bundle = new Bundle(); bundle.putString("name", message+",username:"+ username +" password:"+password); it.putExtras(bundle); // it.putExtra(“test”, "mobile”); startActivity(it); // startActivityForResult(it,REQUEST_CODE); finish(); } else { loginResult.setText(message); } } catch (Exception e) { e.printStackTrace(); } } }}
View Code

HttpUtils 

public class HttpUtils {    /*     * @function HttpPost 请求     * @param params 请求参数     * @return 服务器响应字符串     * @throws Exception     */    public static String postRequest(final String url, final Map
rawParams ) throws Exception { FutureTask
task = new FutureTask
(new Callable
() { @Override public String call() throws Exception { // 创建一个默认的HTTP客户端 DefaultHttpClient httpClient = new DefaultHttpClient(); // 创建 HttpPost 对象 HttpPost post = new HttpPost(url); // 如果传递参数个数比较多,可以对传递的参数进行封装 List
params = new ArrayList
(); for (String key : rawParams.keySet()) { // 封装请求参数 params.add(new BasicNameValuePair(key,rawParams.get(key))); } // 设置请求参数 post.setEntity(new UrlEncodedFormEntity(params, "gbk")); // 发送 POST 请求 HttpResponse httpResponse = httpClient.execute(post); // 如果服务器成功地返回响应 if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { String result = EntityUtils.toString(httpResponse.getEntity()); return result; } return null; } }); new Thread(task).start(); return task.get(); } /* * @function 下载一个图片 * @param imgPath 图片下载地址 * @return Bitmap 对象 * @throws Exception */ public static Bitmap DownloadImage(String imgPath) throws Exception { Bitmap bitmap = null; HttpClient httpClient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(imgPath); HttpResponse httpResponse = null; try { httpResponse = httpClient.execute(httpGet); if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { byte[] data = EntityUtils.toByteArray(httpResponse.getEntity()); // 得到一个Bitmap对象,并且为了使其在post内部可以访问,必须声明为final bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); return bitmap; } } catch (Exception e) { e.printStackTrace(); } return bitmap; }}
View Code

 

转载于:https://www.cnblogs.com/cyccess/p/4221888.html

你可能感兴趣的文章
安装 Express
查看>>
包含列的索引:SQL Server索引的阶梯级别5
查看>>
myeclipse插件安装
查看>>
浙江省第十二届省赛 Beauty of Array(思维题)
查看>>
NOIP2013 提高组 Day1
查看>>
个人对vue生命周期的理解
查看>>
cocos2dx 3.x simpleAudioEngine 长音效被众多短音效打断问题
查看>>
存储(硬件方面的一些基本术语)
查看>>
观察者模式
查看>>
Weka中数据挖掘与机器学习系列之基本概念(三)
查看>>
Win磁盘MBR转换为GUID
查看>>
大家在做.NET B/S项目的时候多用什么设技术啊?
查看>>
Java SE和Java EE应用的性能调优
查看>>
Android设计模式系列--原型模式
查看>>
免费的论文查重网站
查看>>
C语言程序第一次作业
查看>>
leetcode-Sort List
查看>>
中文词频统计
查看>>
了解node.js
查看>>
想做移动开发,先看看别人怎么做
查看>>