博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HttpURLConnection类的使用
阅读量:5975 次
发布时间:2019-06-20

本文共 2866 字,大约阅读时间需要 9 分钟。

此类以获取天气的一个api地址为例:

package javaexcjs;import java.io.BufferedReader;import java.io.OutputStreamWriter;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URLEncoder;import java.net.URL;import java.util.List;import java.util.Map;import java.util.Set;public class CopyOfSendPostRequest {    static String sessionId = "";    public static void main(String[] args) throws Exception {                //城市名称        String city = URLEncoder.encode("重庆", "GB2312");        System.out.println(city);        // api url :北向URL        String locationUrl = "http://php.weather.sina.com.cn/xml.php?city=" + city + "&password=DJOYnieT8234jlsK&day=0";        // http body 消息体        String reqBody = "";        // http method        String method = "POST";        // http head : Content-Type 消息类型        String contentType = "application/json;charset=UTF-8";        // 设定连接的相关参数        URL url = new URL(locationUrl);        HttpURLConnection connection = (HttpURLConnection) url.openConnection();        connection.setDoOutput(true);        connection.setReadTimeout(10000);        connection.setRequestMethod(method);        connection.setRequestProperty("Content-Type", contentType);        //写入请求消息体        OutputStreamWriter out = new OutputStreamWriter(                connection.getOutputStream(), "UTF-8");        out.write(reqBody);        out.flush();        out.close();        // 获取服务端的反馈        String strLine = "";        StringBuilder strResponse = new StringBuilder();        try {            Map
> rspHeaders = connection.getHeaderFields(); Set
rspHeadNames = rspHeaders.keySet(); for (String key : rspHeadNames) { //rspHeaders中的http状态码和描述的键为null if (null != key) { strResponse.append(key + ": "); } strResponse.append(new String(rspHeaders.get(key).get(0) .getBytes("iso-8859-1"), "UTF-8") + "\n"); } int code = connection.getResponseCode(); // String status = connection.getResponseMessage(); InputStream in; // 判断http状态码 if (code == 200) { in = connection.getInputStream(); } else { in = connection.getErrorStream(); } if (null != in) { BufferedReader reader = new BufferedReader( new InputStreamReader(in)); while ((strLine = reader.readLine()) != null) { strResponse.append("\n" + strLine); } } System.out.print(strResponse.toString()); } catch (Exception e) { e.printStackTrace(); } }}
View Code

 

转载于:https://www.cnblogs.com/fengdeng/p/5807212.html

你可能感兴趣的文章
[原][osgearth]osgearthviewer读取earth文件,代码解析(earth文件读取的一帧)
查看>>
mybatis update返回值的意义
查看>>
expdp 详解及实例
查看>>
通过IP判断登录地址
查看>>
深入浅出JavaScript (五) 详解Document.write()方法
查看>>
Beta冲刺——day6
查看>>
在一个程序中调用另一个程序并且传输数据到选择屏幕执行这个程序
查看>>
代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能
查看>>
关于在VS2005中编写DLL遇到 C4251 警告的解决办法
查看>>
提高信息安全意识对网络勒索病毒说不
查看>>
我的友情链接
查看>>
IDE---Python IDE之Eric5在window下的安装
查看>>
Mybatis调用Oracle中的存储过程和function
查看>>
基本安装lnmp环境
查看>>
yum源资料汇总
查看>>
7、MTC与MTV,http请求介绍
查看>>
logstash消费阿里云kafka消息
查看>>
unix 环境高级编程
查看>>
MAXIMO 快速查找实现
查看>>
Oracle——条件控制语句
查看>>