Android 子線程請求ASP.NET後台

來源:互聯網
上載者:User

標籤:

首先定義布局檔案,及點擊事件

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<String ,String> params = new HashMap<String, String>();            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<String,String> rawParams ) throws  Exception    {        FutureTask<String> task = new FutureTask<String>(new Callable<String>() {            @Override            public String call() throws Exception {                // 建立一個預設的HTTP用戶端                DefaultHttpClient httpClient = new DefaultHttpClient();                // 建立 HttpPost 對象                HttpPost post = new HttpPost(url);                // 如果傳遞參數個數比較多,可以對傳遞的參數進行封裝                List<NameValuePair> params = new ArrayList<NameValuePair>();                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

 

Android 子線程請求ASP.NET後台

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.