HttpURLConnection中的GET

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.net.URLEncoder;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Base64;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity {    private EditText content;   //声明一个输入文本内容的编辑框对象    private Button button;  //声明一个发表按钮对象    private Handler handler; // 声明一个Handler对象    private String result = ""; //声明一个代表显示内容的字符串    private TextView resultTV;  //声明一个显示结果的文本框对象    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        content = (EditText) findViewById(R.id.content);    //获取输入文本内容的EditText组件        resultTV = (TextView) findViewById(R.id.result);    //获取显示结果的TextView组件        button = (Button) findViewById(R.id.button);    //获取“发表”按钮组件        //为按钮添加单击事件监听器        button.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                if ("".equals(content.getText().toString())) {                    Toast.makeText(MainActivity.this, "请输入要发表的内容!",                            Toast.LENGTH_SHORT).show(); //显示消息提示                    return;                }                // 创建一个新线程,用于发送并读取微博信息                new Thread(new Runnable() {                    public void run() {                        send(); //发送文本内容到Web服务器                        Message m = handler.obtainMessage(); // 获取一个Message                        handler.sendMessage(m); // 发送消息                    }                }).start(); // 开启线程            }        });        //创建一个Handler对象        handler = new Handler() {            @Override            public void handleMessage(Message msg) {                if (result != null) {                    resultTV.setText(result); // 显示获得的结果                    content.setText("");        //清空文本框                }                super.handleMessage(msg);            }        };    }    public void send() {        String target="";        target = "http://192.168.1.66:8081/blog/index.jsp?content="                    +base64(content.getText().toString().trim());   //要访问的URL地址        URL url;        try {            url = new URL(target);            HttpURLConnection urlConn = (HttpURLConnection) url                    .openConnection();  //创建一个HTTP连接            InputStreamReader in = new InputStreamReader(                    urlConn.getInputStream()); // 获得读取的内容            BufferedReader buffer = new BufferedReader(in); // 获取输入流对象            String inputLine = null;            //通过循环逐行读取输入流中的内容            while ((inputLine = buffer.readLine()) != null) {                result += inputLine + "\n";            }            in.close(); //关闭字符输入流对象            urlConn.disconnect();   //断开连接        } catch (MalformedURLException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }    //对字符串进行Base64编码    public String base64(String content){        try {            content=Base64.encodeToString(content.getBytes("utf-8"), Base64.DEFAULT);   //对字符串进行Base64编码            content=URLEncoder.encode(content); //对字符串进行URL编码        } catch (UnsupportedEncodingException e) {            e.printStackTrace();    //输出异常信息        }        return content;    }}

HttpURLConnection中的POST

import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.net.URLEncoder;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity {    private EditText nickname; // 声明一个输入昵称的编辑框对象    private EditText content; // 声明一个输入文本内容的编辑框对象    private Button button; // 声明一个发表按钮对象    private Handler handler; // 声明一个Handler对象    private String result = ""; // 声明一个代表显示内容的字符串    private TextView resultTV; // 声明一个显示结果的文本框对象    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        content = (EditText) findViewById(R.id.content); // 获取输入文本内容的EditText组件        resultTV = (TextView) findViewById(R.id.result); // 获取显示结果的TextView组件        nickname = (EditText) findViewById(R.id.nickname); // 获取输入昵称的EditText组件        button = (Button) findViewById(R.id.button); // 获取“发表”按钮组件        // 为按钮添加单击事件监听器        button.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                if ("".equals(nickname.getText().toString())                        || "".equals(content.getText().toString())) {                    Toast.makeText(MainActivity.this, "请将内容输入完整!",                            Toast.LENGTH_SHORT).show();                    return;                }                // 创建一个新线程,用于从网络上获取文件                new Thread(new Runnable() {                    public void run() {                        send();                        Message m = handler.obtainMessage(); // 获取一个Message                        handler.sendMessage(m); // 发送消息                    }                }).start(); // 开启线程            }        });        handler = new Handler() {            @Override            public void handleMessage(Message msg) {                if (result != null) {                    resultTV.setText(result); // 显示获得的结果                    content.setText(""); // 清空内容编辑框                    nickname.setText(""); // 清空昵称编辑框                }                super.handleMessage(msg);            }        };    }    public void send() {        String target = "http://192.168.1.66:8081/blog/dealPost.jsp";   //要提交的目标地址        URL url;        try {            url = new URL(target);            HttpURLConnection urlConn = (HttpURLConnection) url                    .openConnection(); // 创建一个HTTP连接            urlConn.setRequestMethod("POST"); // 指定使用POST请求方式            urlConn.setDoInput(true); // 向连接中写入数据            urlConn.setDoOutput(true); // 从连接中读取数据            urlConn.setUseCaches(false); // 禁止缓存            urlConn.setInstanceFollowRedirects(true);   //自动执行HTTP重定向            urlConn.setRequestProperty("Content-Type",                    "application/x-www-form-urlencoded"); // 设置内容类型            DataOutputStream out = new DataOutputStream(                    urlConn.getOutputStream()); // 获取输出流            String param = "nickname="                    + URLEncoder.encode(nickname.getText().toString(), "utf-8")                    + "&content="                    + URLEncoder.encode(content.getText().toString(), "utf-8"); //连接要提交的数据            out.writeBytes(param);//将要传递的数据写入数据输出流            out.flush();    //输出缓存            out.close();    //关闭数据输出流            // 判断是否响应成功            if (urlConn.getResponseCode() == HttpURLConnection.HTTP_OK) {                InputStreamReader in = new InputStreamReader(                        urlConn.getInputStream()); // 获得读取的内容                BufferedReader buffer = new BufferedReader(in); // 获取输入流对象                String inputLine = null;                while ((inputLine = buffer.readLine()) != null) {                    result += inputLine + "\n";                }                in.close(); //关闭字符输入流            }            urlConn.disconnect();   //断开连接        } catch (MalformedURLException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }}

HttpClient的GET

和HttpURLConnection中的Get上述代码中唯一不同的是send方法;

public void send() {        String target = "http://192.168.1.66:8081/blog/deal_httpclient.jsp?param=get";  //要提交的目标地址        HttpClient httpclient = new DefaultHttpClient();//创建HttpClient对象        HttpGet httpRequest = new HttpGet(target);  //创建HttpGet连接对象        HttpResponse httpResponse;        try {            httpResponse = httpclient.execute(httpRequest); //执行HttpClient请求            if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){                result = EntityUtils.toString(httpResponse.getEntity());    //获取返回的字符串            }else{                result="请求失败!";            }        } catch (ClientProtocolException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }

HttpClient的POST

同样的和HttpURLConnection中的Post不同的是send方法:

public void send() {        String target = "http://192.168.1.66:8081/blog/deal_httpclient.jsp";    //要提交的目标地址        HttpClient httpclient = new DefaultHttpClient();    //创建HttpClient对象        HttpPost httpRequest = new HttpPost(target);    //创建HttpPost对象        //将要传递的参数保存到List集合中        List<NameValuePair> params = new ArrayList<NameValuePair>();        params.add(new BasicNameValuePair("param", "post"));    //标记参数        params.add(new BasicNameValuePair("nickname", nickname.getText().toString()));  //昵称        params.add(new BasicNameValuePair("content", content.getText().toString()));    //内容        try {            httpRequest.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //设置编码方式            HttpResponse httpResponse = httpclient.execute(httpRequest);    //执行HttpClient请求            if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){  //如果请求成功                result += EntityUtils.toString(httpResponse.getEntity());   //获取返回的字符串            }else{                result = "请求失败!";            }        } catch (UnsupportedEncodingException e1) {            e1.printStackTrace();   //输出异常信息        } catch (ClientProtocolException e) {            e.printStackTrace();    //输出异常信息        } catch (IOException e) {            e.printStackTrace();    //输出异常信息        }    }

更多相关文章

  1. android 5.0之后利用Intent传递Serializable对象存在问题
  2. Android实现动态显示或隐藏密码输入框的内容
  3. Android使用文件管理器打开指定文件夹,浏览里面的内容
  4. android解析httpresponce内容
  5. Android中TextView内容过长加省略号,设置超出6个字就用省略号表示
  6. Android Service---在清单中声明一个服务
  7. android bundle 对象 序列化
  8. 用kotlin打印出漂亮的android日志(三)——基于责任链模式打印任
  9. Android心得3.2--用SAX解析器解析xml文件内容

随机推荐

  1. mysql与mssql的md5加密语句
  2. case 嵌套查询与连接查询你需要懂得
  3. sql server创建复合主键的2种方法
  4. SQL Server遍历表中记录的2种方法(使用表
  5. 简化SQL Server备份与还原到云工作原理及
  6. 一条select语句引起的瓶颈问题思考
  7. sql server 入门语句总结
  8. Sql Server中一个表2个字段关联同一个表(
  9. SQL Server利用bcp命令把SQL语句结果生成
  10. sql not in 与not exists使用中的细微差