此类以获取天气的一个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<String, List<String>> rspHeaders = connection.getHeaderFields(); Set<String> 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();
}
}
}

HttpURLConnection类的使用的更多相关文章

  1. HttpURLConnection类

    导语 java.net.HttpURLConnectin类是URLConnection类的抽象子类.它在处理协议为HTTP的URL时特别有效.具体而言,它通过它可以获取和设置请求方法,确定是否重定向, ...

  2. JDK下sun.net.www.protocol.http.HttpURLConnection类-----Http客户端实现类的实现分析

    HttpClient类是进行TCP连接的实现类, package sun.net.www.http; import java.io.*; import java.net.*; import java. ...

  3. [02] URL和HttpURLConnection类

    1.URL的概念 统一资源定位符URL(Uniform Resource Locator)是www客户机访问Internet时用来标识资源的名字和地址. URL的基本格式是: <METHOD&g ...

  4. Android基于HttpUrlConnection类的文件下载

    /** * get方法的文件下载 * <p> * 特别说明 android中的progressBar是google唯一的做了处理的可以在子线程中更新UI的控件 * * @param pat ...

  5. 安卓开发之HttpURLConnection类和Handler类的使用

    package com.lidaochen.test; import java.io.ByteArrayOutputStream; import java.io.InputStream; public ...

  6. HttpUrlConnection类基本使用

    这个类用来模拟浏览器向服务器发送请求和接收响应 注意: HttpUrlConnection对象简称huc对象 1)获取huc对象向url构造中传递url字符串,并调用openconnection方法即 ...

  7. java后台调用HttpURLConnection类模拟浏览器请求(一般用于接口调用)

    项目开发中难免遇到外部接口的调用,小生今天初次接触该类,跟着API方法走了一遍,如有不对的地方,还请哆哆指正,拜谢! 1 package com.cplatform.movie.back.test; ...

  8. Android的HttpUrlConnection类的GET和POST请求

    /** * get方法使用 */ private void httpGet() { new Thread() { @Override public void run() { //此处的LOGIN是请求 ...

  9. Android使用HttpURLConnection通过POST方式发送java序列化对象

    使用HttpURLConnection类不仅可以向WebService发送字符串,还可以发送序列化的java对象,实现Android手机和服务器之间的数据交互. Android端代码: public ...

随机推荐

  1. 卷积神经网络之GoogleNet:inceptionV3模型学习

    Rethinking the Inception Architecture for Computer Vision 论文地址:https://arxiv.org/abs/1512.00567 Abst ...

  2. 在javascript中toString 和valueOf的区别

    1.toString()方法:主要用于Array.Boolean.Date.Error.Function.Number等对象转化为字符串形式.日期类的toString()方法返回一个可读的日期和字符串 ...

  3. SQL Server 导入超大脚本

    另外使用window server 版操作系统,执行脚本文件比普通版操作系统大大提升大小限制. 在执行SQL脚本的时候要是出现了这些情况我咋办呢? 步入正轨 应用场景:服务器升级,比如原来是2003的 ...

  4. HTML5和CSS3的一些学习记录

    1.引述块级文本的标签(blockquote): <blockquote cite="http://www.marktwainbooks.edu/"> <p> ...

  5. 03-spark kafka

    1.概念 Kafka是一个开源的消息系统.由Scala编写,它具备以下特点: ①消息持久化: 为了从大数据中获取有价值的信息,任何信息的丢失都是负担不起的.使用Kafka时,message会被存储并且 ...

  6. Linux之文档与目录结构 (/ 用法, 相对路径,绝对路径)

    Linux之文档与目录结构   Linux文件系统结构 Linux目录结构的组织形式和Windows有很大的不同.首先Linux没有“盘(C盘.D盘.E盘)”的概念.已经建立文件系统的硬盘分区被挂载到 ...

  7. Spring Security数据库管理

    要实现数据库管理用户角色及权限,需要自定义用户登录功能,Spring Security已经为我们提供了接口UserDetailService.需要以下表: 用户表 角色表 权限表 用户角色关系表 权限 ...

  8. 零基础学习python_with(34课)

    今天学习的with语句,with的表达形式如下:据说context必须是上下文管理器,这我就懵比了,啥玩意啊... with语句的表达形式: with context as var:    block ...

  9. LeetCode 12. Integer to RomanLeetCode

    整数转罗马数字 first submission import math class Solution: def __init__(self): self.roman={1:'I',5:'V',10: ...

  10. spring初始化相关

    获取applicationContext implements ApplicationContextAware @Override public void setApplicationContext( ...