您的位置:首页 > 理论基础 > 计算机网络

android中使用 HttpURLConnection 做网络请求

2017-12-02 17:26 387 查看
public class MainActivity extends AppCompatActivity {

private ByteArrayOutputStream baos;
private HttpURLConnection urlConnection;

//网络请求的接口
 private String path = "http://apis.juhe.cn/cook/query?key=7ec6a52ef771701be99da0f65c624310&menu=%E8%A5%BF%E7%BA%A2%E6%9F%BF&rn=10&pn=3";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

@Override
public void onClick(View v) {

//创建一个AsyncTask

new AsyncTask<String, String, String>() {

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

try {
//实例化路径
                          URL url = new URL(params[0]);
//
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
//设置请求方式
urlConnection.setRequestMethod("GET");
//设置服务器的超时 时长
 urlConnection.setConnectTimeout(5000);
//获取响应的状态码
int responseCode = urlConnection.getResponseCode();
//判断等于200代表成功
if (responseCode == 200) {
//读取
InputStream is = urlConnection.getInputStream();
baos = new ByteArrayOutputStream();
//以byte数组的形式
byte[] b = new byte[1024 *1024];
int len;
while ((len = is.read(b)) != -1) {

 baos.write(b, 0, len);
}
return baos.toString();

 } else {
Toast.makeText(MainActivity.this, "请求失败", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
e.printStackTrace();
}

return baos.toString();
}

@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
//Gson解析

Gson g = new Gson();
Eat_food eat_food = g.fromJson(s, Eat_food.class);
list = eat_food.getResult().getData();
lv.setAdapter(new myadpter());
Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();
}
}.execute(path);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  HttpURLConnection
相关文章推荐