HttpURLConnection 和 AsyncTask应用

private class MyAsyncTask extends AsyncTask<String,Void,String>{

//耗时操作

@Override
protected String doInBackground(String... strings) {

    try {
        //创建url
        URL url = new URL("http://www.xieast.com/api/news/news.php?page=2");

        //打开链接
        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
        //设置请求方法
        urlConnection.setRequestMethod("GET");
        //读取超时
        urlConnection.setReadTimeout(5000);
        //连接超市
        urlConnection.setConnectTimeout(5000);

        if (urlConnection.getResponseCode()==200){
            //得到输入流
            InputStream stream = urlConnection.getInputStream();
            //得到请求的数据
            BufferedReader reader = new BufferedReader(new InputStreamReader(stream));

            StringBuilder builder = new StringBuilder();

            String str = "";
            while ((str=reader.readLine())!=null){
                builder.append(str);

            }
            return builder.toString();
        }


    } catch (Exception e) {
        e.printStackTrace();
    }


    return null;
}



//主线程 接受耗时操作传来的值
@Override
protected void onPostExecute(String s) {
    super.onPostExecute(s);

    Gson gson = new Gson();
    JsonBean jsonBean = gson.fromJson(s, JsonBean.class);
    ArrayList<Step> data = jsonBean.getData();

Myadapter myadapter = new Myadapter(getActivity(),data);
     listView.setAdapter(myadapter);


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用HttpURLConnectionAndroid Studio中实现注册功能的示例代码: ```java public class RegisterActivity extends AppCompatActivity { private EditText mUsernameEditText; private EditText mPasswordEditText; private EditText mEmailEditText; private Button mRegisterButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); mUsernameEditText = findViewById(R.id.edit_text_username); mPasswordEditText = findViewById(R.id.edit_text_password); mEmailEditText = findViewById(R.id.edit_text_email); mRegisterButton = findViewById(R.id.button_register); mRegisterButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String username = mUsernameEditText.getText().toString(); String password = mPasswordEditText.getText().toString(); String email = mEmailEditText.getText().toString(); // 创建一个新的线程来执行注册请求 new RegisterTask().execute(username, password, email); } }); } private class RegisterTask extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... params) { String username = params[0]; String password = params[1]; String email = params[2]; // 创建一个URL对象 URL url; try { url = new URL("http://your-domain.com/register.php"); } catch (MalformedURLException e) { e.printStackTrace(); return "URL错误"; } // 创建一个HttpURLConnection对象 HttpURLConnection connection; try { connection = (HttpURLConnection) url.openConnection(); } catch (IOException e) { e.printStackTrace(); return "连接错误"; } // 设置请求参数 connection.setDoOutput(true); connection.setRequestProperty("Content-Type", "application/json"); // 创建一个JSON对象来存储请求数据 JSONObject data = new JSONObject(); try { data.put("username", username); data.put("password", password); data.put("email", email); } catch (JSONException e) { e.printStackTrace(); return "JSON错误"; } // 将JSON对象转换为字符串并写入输出流 OutputStream outputStream; try { outputStream = connection.getOutputStream(); outputStream.write(data.toString().getBytes()); outputStream.flush(); outputStream.close(); } catch (IOException e) { e.printStackTrace(); return "输出错误"; } // 获取服务器响应 StringBuilder response = new StringBuilder(); InputStream inputStream; try { inputStream = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line = reader.readLine()) != null) { response.append(line); } reader.close(); } catch (IOException e) { e.printStackTrace(); return "输入错误"; } return response.toString(); } @Override protected void onPostExecute(String result) { Toast.makeText(RegisterActivity.this, result, Toast.LENGTH_SHORT).show(); } } } ``` 在上面的代码中,我们使用了AsyncTask来在新的线程中执行HTTP请求。在doInBackground()方法中,我们首先创建了一个URL对象,并使用它来创建一个HttpURLConnection对象。然后,我们设置了请求参数,包括设置请求方法为POST、设置请求头部为JSON格式等。接着,我们创建了一个JSON对象来存储请求数据,将其转换为字符串并写入输出流,最后读取服务器响应并返回。在onPostExecute()方法中,我们展示了一个Toast来显示请求结果。 当然,在实际应用中,我们需要根据具体需求来修改代码。例如,我们可能需要对请求数据进行加密,或者使用HTTPS来保证安全性等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值