首页 > 学院 > 开发设计 > 正文

Okhttp Get请求的简单应用

2019-11-09 18:35:01
字体:
来源:转载
供稿:网友

          网上关于okhttp  的Get应用,代码很容易就可以找到。但是,这里需要说明一个问题,新手容易忽略的问题。但是可能是致命的。

先上代码:       现在activity的onCreate()方法中开启一个子线程      (1)
@OverridePRotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_request);    text_view = (TextView) findViewById(R.id.text_view);    new Thread(new Runnable() {        @Override        public void run() {            try {                enqueue();            } catch (Exception e) {                e.printStackTrace();            }        }    }).start();}
private void enqueue(){    Request request = new Request.Builder()            .url("http://192.168.1.105:8080/girl/a.txt")            .build();    client.newCall(request).enqueue(new Callback() {        @Override        public void onFailure(Call call, IOException e) {        }        @Override        public void onResponse(Call call, Response response) throws IOException {            if(response.isSuccessful()){
		/**上面除了网址需要修改别的都可以直接复制使用
 		   但是新手在接触到这里的时候请注意
                   response.body().string();是请求之后的回应,在第一次请求之后得到的回应
                   是有值的,而且获取的值都需要继续使用,这时候就需要立刻将
  		   有值的回应赋值给一个变量,方便后边使用。
  		   如果不是第一次出现就复制,第二次就是空的,因为请求一次只有一次响应,
		   再次使用response.body().string() 的时候 就是空的。
		                String name = response.body().string();
		/**当赋值后,使用这个变量的时候需要toString()
		Message msg = new Message();
 		 msg.what = 123;
		 msg.obj = name.toString();
		handler.sendMessage(msg);                            }        }    });}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表