使用HttpURLConnection发请求获取数据
参考代码:
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.net.HttpURLConnection;
- import java.net.URL;
- /
- 功能说明:HttpClient - 通过发送Http请求获取目标URL的数据
- /
- public class HttpClient {
- / 提交方式POST /
- public static final String SUBMIT_METHOD_POST = “POST”;
- / 提交方式GET /
- public static final String SUBMIT_METHOD_GET = “GET”;
- /
- 通过http请求获取数据
- @param urlStr url地址,如:www.baidu.com
- @param param url的?后的参数,如:www.baidu.com?a=1&&b=2,则param为”a=1&&b=2”
- @return 返回读取到的数据(json字符串)
- /
- public static String pub(String urlStr,String param,String method)
- {
- URL url = null;
- HttpURLConnection connection = null;
- StringBuffer buffer = new StringBuffer();
- System.out.println(”request:”+urlStr+“?”+param);
- try {
- /建立连接/
- url = new URL(urlStr);
- connection = (HttpURLConnection) url.openConnection();
- /设置连接属性 /
- connection.setDoOutput(true);// 使用 URL 连接进行输出
- connection.setDoInput(true);// 使用 URL 连接进行输入
- connection.setUseCaches(false);// 忽略缓存
- connection.setRequestMethod(method);// 设置URL请求方法
- /设置请求属性/
- connection.setRequestProperty(”Content-Length”,param.length()+“”);
- connection.setRequestProperty(”Content-Type”, “application/octet-stream”);
- connection.setRequestProperty(”Connection”, “Keep-Alive”);// 维持长连接
- connection.setRequestProperty(”Charset”, “UTF-8”);// 设置编码
- /建立输出流,并写入数据/
- OutputStream outputStream = connection.getOutputStream();
- outputStream.write(param.getBytes(”UTF-8”));
- /读取数据/
- BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), “UTF-8”));
- String line = ”“;
- while ((line = reader.readLine()) != null) {
- buffer.append(line);
- }
- reader.close();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (connection != null) {
- connection.disconnect();
- }
- }
- System.out.println(”response:”+buffer.toString());
- return buffer.toString();
- }
- /测试*/
- public static void main(String[] args) {
- pub(”http://f.apiplus.cn/ssq.json”, “a=1”,SUBMIT_METHOD_POST);
- }
- }
测试结果: