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 ...
随机推荐
- Round544div3E(1133E)
一.题目链接 https://codeforces.com/problemset/problem/1133/E 二.思路 显然要使用dp,因为中间有部分人不会选取. 令$dp[i][j]$表示在前$i ...
- java加减天数
指定日期的加减天数 public static String setDay(int num,String newDate) throws ParseException{ SimpleDateForma ...
- pycharm中快捷键的使用
转载自:https://blog.csdn.net/fighter_yy/article/details/40860949 Alt+Enter 自动添加包 shift+O 自动建议代码补全 Ctrl+ ...
- MyBatis Generator 生成数据库自带中文注释
1. maven依赖 <!-- mybatis生成 jar包 --> <dependency> <groupId>org.mybatis.generator< ...
- python-异常
实例:https://www.cnblogs.com/tangpg/p/7992979.html 在系统内部,解释器使用一种被称为 ‘块栈’的结构处理异常逻辑.它和执行栈一起被栈帧管理.块栈在运行期间 ...
- Robot Operating System (ROS)学习笔记---创建简单的机器人模型smartcar
搭建环境:XMWare Ubuntu14.04 ROS(indigo) 转载自古月居 转载连接:http://www.guyuehome.com/243 一.创建硬件描述包 已创建catkin_ ...
- 通俗理解 MVC , MVVM
MVC 也就是Model-View-Controller 的缩写,就是 模型-视图-控制器 : Model :管理数据 View :视图展示 Controller :响应用户操作,并将 Model 更 ...
- curd——5
curd——5 SELECT area_id FROM 16tree.ts_area where pid=0; <?php //1可以防止注入$db = Yii::app()->db; ...
- python中的insert
insert()往列表的指定位置添加元素,举个例子: 1 a = ["hello", "world", "dlrb"] 2 a.insert ...
- beginner_json_setting