HttpURLConnection类的使用
此类以获取天气的一个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类的使用的更多相关文章
- HttpURLConnection类
导语 java.net.HttpURLConnectin类是URLConnection类的抽象子类.它在处理协议为HTTP的URL时特别有效.具体而言,它通过它可以获取和设置请求方法,确定是否重定向, ...
- JDK下sun.net.www.protocol.http.HttpURLConnection类-----Http客户端实现类的实现分析
HttpClient类是进行TCP连接的实现类, package sun.net.www.http; import java.io.*; import java.net.*; import java. ...
- [02] URL和HttpURLConnection类
1.URL的概念 统一资源定位符URL(Uniform Resource Locator)是www客户机访问Internet时用来标识资源的名字和地址. URL的基本格式是: <METHOD&g ...
- Android基于HttpUrlConnection类的文件下载
/** * get方法的文件下载 * <p> * 特别说明 android中的progressBar是google唯一的做了处理的可以在子线程中更新UI的控件 * * @param pat ...
- 安卓开发之HttpURLConnection类和Handler类的使用
package com.lidaochen.test; import java.io.ByteArrayOutputStream; import java.io.InputStream; public ...
- HttpUrlConnection类基本使用
这个类用来模拟浏览器向服务器发送请求和接收响应 注意: HttpUrlConnection对象简称huc对象 1)获取huc对象向url构造中传递url字符串,并调用openconnection方法即 ...
- java后台调用HttpURLConnection类模拟浏览器请求(一般用于接口调用)
项目开发中难免遇到外部接口的调用,小生今天初次接触该类,跟着API方法走了一遍,如有不对的地方,还请哆哆指正,拜谢! 1 package com.cplatform.movie.back.test; ...
- Android的HttpUrlConnection类的GET和POST请求
/** * get方法使用 */ private void httpGet() { new Thread() { @Override public void run() { //此处的LOGIN是请求 ...
- Android使用HttpURLConnection通过POST方式发送java序列化对象
使用HttpURLConnection类不仅可以向WebService发送字符串,还可以发送序列化的java对象,实现Android手机和服务器之间的数据交互. Android端代码: public ...
随机推荐
- Sep 10th 2018
今天是教师节,祝家里的两位‘老师’节日快乐.一位是幼儿园的保健医,另一位是驾校的教练.不能说是真正的老师,但作的也是传道授业之工作.今天看到新闻,马云要在明年的今天辞去现任阿里巴巴主席一职,继续投身他 ...
- MySql存储过程与函数详解
存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句.存储过程和函数可以避免开发人员重复的编写相同的SQL语句.而且,存储过程和函数是在MyS ...
- 01-spark基础
1.定义 Spark是一个由scala语言编写的实时计算系统 Spark支持的API包括Scala.Python.Java .R 2.功能 Spark Core: 将分布式数据抽象为弹性分布式数据集( ...
- JVM总结-java内存模型
我们先来看一个反常识的例子. int a=0, b=0; public void method1() { int r2 = a; b = 1; } public void method2() { in ...
- 关于chrome控制台警告:Synchronous XMLHttpRequest on the main thread
Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to th ...
- 安全测试8_Web安全实战1(DVWA部署)
1.渗透神器的打造(火狐浏览器的打造) Firebug HackBar(渗透插件) Tamper Data(抓包.截包.改包等功能) Proxy Switcher(代理设置) 2.PHP环境安装(ph ...
- CSS3的过渡和转换
CSS3的过渡和转换 1.过渡 什么是过渡呢?过渡通俗的来说就是从一个样式到另一个样式的逐渐转换改变的效果. 过渡的属性: 属性 描述 css transition 简写属性,用于在一个属性中设置4个 ...
- spring事务传播实现源码分析
转载. https://blog.csdn.net/qpfjalzm123/article/details/83717367 本文只是对spring事务传播实现的流程进行简单的分析,如有不对之处请指出 ...
- ansible安装使用入门
生成对称密钥 执行以下命令,会在当前用户的.ssh目录下生成id_rsa和id_rsa_pub两个文件. ssh-keygen -t rsa root用户:/root/.ssh 普通用户:/home/ ...
- ROS学习手记 - 7 创建ROS msg & srv
至此,我们初步学习了ROS的基本工具,接下来一步步理解ROS的各个工作部件的创建和工作原理. 本文的详细文档:http://wenku.baidu.com/view/623f41b3376baf1ff ...