从网络获取数据的几种方法

本文介绍通过HttpHttpClient、HttpURLConnection及URL三种方式实现GET与POST请求的具体步骤,包括创建客户端、设置参数、发送请求及处理响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从网络上请求数据的几种方法

一、HttpHttpClient:

GET()请求:

1、// 创建一个默认的HttpClient

   HttpClient client= new DefaultHttpClient();

client.getParams().setParameter(
       CoreConnectionPNames.CONNECTION_TIMEOUT, 2000);// 连接时间
     client.getParams().setParameter(
       CoreConnectionPNames.SO_TIMEOUT, 2000);// 数据传输时间

2//创建一个HttpGet请求

   HttpGet get= new HttpGet("接口");

注意:接口必须完整,例如http://zuowen.api.juhe.cn/zuowen/typeList?key=cbd1daab865bf46c4772a7bc0eb63cce&id=1

3//客户端使用GET方式执行请教,获得服务器端的回应response

 HttpResponse response =client.execute(get);

4//判断请求是否成功

   if (response.getStatusLine().getStatusCode() == 200) {

      // 获得输入流

   InputStreamstream = response.getEntity().getContent();

//GSON解析数据

。。。。。。

 

POST()请求:

1、// 创建一个默认的HttpClient

   HttpClient client= new DefaultHttpClient();

2//创建一个HttpGet请求

   HttpPost post= new HttpPost ("接口");

接口实例:http://v.juhe.cn/cell/get?mnc=0&cell=28655&lac=17695

3、创建泛型为NameValuePair的集合

List<NameValuePair> list = new ArrayList<NameValuePair>();

list.add(newBasicNameValuePair("key",

                     "1e1c029cc62bcbfb65934ddcc91b4b7c"));

UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(

   list);

4//得到UrlEncodedFormEntity对象

post.setEntity(formEntity);

5//客户端使用POST方式执行请教,获得服务器端的回应response

   HttpResponse response = client.execute(post);    

4//判断请求是否成功

   if (response.getStatusLine().getStatusCode() == 200) {

      // 获得输入流

   InputStreamstream = response.getEntity().getContent();

//GSON解析数据

。。。。。。

 

二、HttpURLConnection

GET()请求:

1、    创建URL对象

URL url = new URL("http://zuowen.api.juhe.cn/zuowen/typeList?key=cbd1daab865bf46c4772a7bc0eb63cce&id=1");

注意:接口完整

2

// 利用HttpClientConnection对象从网络中获取网页数据

   HttpURLConnectionurlConnection = (HttpURLConnection) url

                  .openConnection();

 

urlConnection.setRequestMethod("GET");//设置使用GET请求方式

   urlConnection.setRequestProperty("Charset","UTF-8");//设置编码方式

   urlConnection.setRequestProperty("Connection","Keep-Alive");//设置长时间连接

   urlConnection.setConnectTimeout(5000);//设置连接超时

   urlConnection.setReadTimeout(5000);//读取超时

3、//对响应码进行判断

   if (urlConnection.getResponseCode() == 200) {

      // 得到网络返回的输入流

   InputStream is =urlConnection.getInputStream();

//GSON解析数据

。。。。。。

POST()请求:

2、    创建URL对象

URL url = new URL("http://zuowen.api.juhe.cn/zuowen/typeList");

注意:接口写法

2、//利用HttpClientConnection对象从网络中获取网页数据

   HttpURLConnectionurlConnection = (HttpURLConnection) url

                  .openConnection();

 

urlConnection.setRequestMethod("POST");//设置使用GET请求方式

urlConnection.setDoOutput(true); // 允许输出

 

   urlConnection.setRequestProperty("Charset","UTF-8");//设置编码方式

   urlConnection.setRequestProperty("Connection","Keep-Alive");//设置长时间连接

   urlConnection.setConnectTimeout(5000);//设置连接超时

   urlConnection.setReadTimeout(5000);//读取超时

3、得到输出流

   OutputStreamstream = urlConnection.getOutputStream();

 

   PrintWriter writer = newPrintWriter(stream);

              writer.print("key=cbd1daab865bf46c4772a7bc0eb63cce&id=1");

   writer.flush();

   writer.close();

4、//对响应码进行判断

   if (urlConnection.getResponseCode() == 200) {

      // 得到网络返回的输入流

   InputStream is =urlConnection.getInputStream();

//GSON解析数据

。。。。。。

三、URL

URL url = new URL(http://zuowen.api.juhe.cn/zuowen/typeList?key=cbd1daab865bf46c4772a7bc0eb63cce&id=1);

InputStream stream = url.openStream();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值