• HTTP通信(HttpURLConnection)


    Android发送HTTP请求有两种,HttpURLConnection和HttpClient
    用法:
    1.获取HttpURLConnection实例
    new一个URL对象,传入一个网络地址;然后调用openConnection方法
     
    2.设置HTTP请求的方法
    常用的方法有两种:GET和POST方法,GET:从服务器获取数据;POST:发送数据给服务器
     
    3.设置一些东西
    比如设置连接超时,读取超时,服务器希望得到的消息头等
     
    4.getInputStream获取服务器返回的输入流
     
    5.对输入流进行读取
     
    6.disconnect关闭HTTP连接

    private void sendResquestWithURLConnection(){
    new Thread(new Runnable() {
    @Override
    public void run() {
    HttpURLConnection connection = null;
    try{
    URL url = new URL("http://www.baidu.com");
    connection = (HttpURLConnection) url.openConnection();

    connection.setRequestMethod("GET");

    connection.setConnectTimeout(8000);
    connection.setReadTimeout(8000);

    InputStream in = connection.getInputStream();

    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
    StringBuilder response = new StringBuilder();
    String line;
    while((line = reader.readLine()) != null){
    response.append(line);
    }
    Message message = new Message();
    message.what = SHOW_RESPONSE;

    message.obj = response.toString();
    handler.sendMessage(message);
    }catch(Exception e){
    e.printStackTrace();
    }finally{
    if (connection != null){
    connection.disconnect();
    }
    }
    }
    }).start();

    private Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
    switch (msg.what){
    case SHOW_RESPONSE:
    String response = (String)msg.obj;
    responseText.setText(response);
    }

    }
    };

    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    sendRequest = (Button) findViewById(R.id.send_request);
    responseText = (TextView) findViewById(R.id.response_text);
    sendRequest.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
    if (v.getId() == R.id.send_request){
    sendResquestWithURLConnection();
    }
    }
  • 相关阅读:
    计科4班曾祥刚2016024290
    线程:子线程先循环十次,主线程在循环20次,再子线程循环十次,主线程循环20次,如此循环50次
    java经典程序(11-20)
    java经典程序(1-10)
    String,File和xml
    自写一个双向链表
    i love my girl
    javamail发邮件
    Java反射机制(创建Class对象的三种方式)
    java基础面试题
  • 原文地址:https://www.cnblogs.com/aisi-liu/p/5344279.html
Copyright © 2020-2023  润新知