转:https://www.cnblogs.com/brokencolor/p/8575440.html

Java的URL类(二)

实例:

Java 通过HttpURLConnection Post方式提交json,并从服务端返回json数据

package Demo.Test;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL; public class App { public static void readParse(String urlPath,String str) throws Exception {
System.out.println(str); ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] data = new byte[1024];
int len = 0; URL url = new URL(urlPath);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 设置传递方式
conn.setRequestMethod("POST");
//代理
conn.addRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
conn.setDoInput(true);
// 设置不用缓存
conn.setUseCaches(false);
//权限
conn.setRequestProperty("Authorization", " Bearer fc58be57c46b32f9a2c32e5393684ac0"); // 开始连接请求
conn.connect();
OutputStream out = conn.getOutputStream();
// 写入请求的字符串
out.write((str).getBytes());
out.flush();
out.close(); // 请求返回的状态
if (conn.getResponseCode() == 200) {
System.out.println("连接成功");
// 请求返回的数据
InputStream in = conn.getInputStream();
String a = null;
try {
byte[] data1 = new byte[in.available()];
in.read(data1);
// 转成字符串
a = new String(data1);
System.out.println(a);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} else {
System.out.println(conn.getResponseCode()+":no++");
} }
public static void main(String[] args) throws Exception {//地址
String url = "http://...";
//查询参数
String str = "{\"ids\":[15410,15402]}";
readParse(url,str);
}
}

注:如果你的代码报错:java.io.IOException: Server returned HTTP response code: 403 for URL https://...... 访问被拒绝

  你需要在代码中加入请求头信息

// 设置允许输出
conn.setDoOutput(true); conn.setDoInput(true); // 设置不用缓存
conn.setUseCaches(false);
// 设置传递方式
conn.setRequestMethod("POST");
// 设置维持长连接
conn.setRequestProperty("Connection", "Keep-Alive");
// 设置文件字符集:
conn.setRequestProperty("Charset", "UTF-8"); // 设置文件长度
conn.setRequestProperty("Content-Length", String.valueOf(data.length)); // 设置文件类型:
conn.setRequestProperty("contentType", "application/json");
//代理
conn.addRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
//权限---需要根据自己情况进行修改
conn.setRequestProperty("Authorization", " Bearer fc58be57c46b32f9a2c32e5393684ac0");

GET方式访问weatherAPI接口实例

 1 import java.io.InputStream;
2 import java.net.URL;
3 import java.net.URLConnection;
4
5 public class WeatherAPI {
6
7 public static void main(String[] args) throws Exception {
8 // TODO Auto-generated method stub
9 WeatherAPI.json("北京");
10 //3秒后继续执行
11 Thread.sleep(3000);
12 WeatherAPI.xml("东京");
13 }
14 public static void json(String strcity) throws Exception{
15 //参数url化
16 String city = java.net.URLEncoder.encode(strcity, "utf-8");
17 //拼地址
18 String apiUrl = String.format("https://www.sojson.com/open/api/weather/json.shtml?city=%s",city);
19 //开始请求
20 URL url= new URL(apiUrl);
21 URLConnection open = url.openConnection();
22 InputStream input = open.getInputStream();
23 //这里转换为String,带上包名,怕你们引错包
24 String result = org.apache.commons.io.IOUtils.toString(input,"utf-8");
25 //输出
26 System.out.println(result);
27 }
28
29 public static void xml(String strcity) throws Exception{
30 //参数url化
31 String city = java.net.URLEncoder.encode(strcity, "utf-8");
32 //拼地址
33 String apiUrl = String.format("https://www.sojson.com/open/api/weather/xml.shtml?city=%s",city);
34 //开始请求
35 URL url= new URL(apiUrl);
36 URLConnection open = url.openConnection();
37 InputStream input = open.getInputStream();
38 //这里转换为String,带上包名,怕你们引错包
39 String result = org.apache.commons.io.IOUtils.toString(input,"utf-8");
40 //输出
41 System.out.println(result);
42 }
43 }

Java的URL类(二)的更多相关文章

  1. java之URL类

    Java的网络类可以让你通过网络或者远程连接来实现应用.而且,这个平台现在已经可 以对国际互联网以及URL资源进行访问了.Java的URL类可以让访问网络资源就像是访问你本地的文件夹一样方便快捷.我们 ...

  2. Java的URL类(一)

    转:https://www.cnblogs.com/blackiesong/p/6182038.html Java的URL类(一) Java的网络类可以让你通过网络或者远程连接来实现应用.而且,这个平 ...

  3. Java使用URL类下载的图片不完整

    问题 今天在使用URL类来下载网站中的图片的时候,出现了一个问题:下载的图片不完整,并且每次下载的图片大小也不是都相同,反正就是不完整. 问题代码如下: package cn.ganlixin.tes ...

  4. Java 使用URL类通过url下载网络资源

    主要用到的类 地址类: URL http类: HttpURLConnection 输入流: InputStream 输出流: FileOutputStream 上代码 package com.demo ...

  5. 使用JAVA的URL类处理url事例

    import java.net.*; import java.io.*; public class ParseURL { public static void main(String[] args) ...

  6. java.net.URL类

    package com.mozq.boot.kuayu01.demo; import java.net.MalformedURLException; import java.net.URL; publ ...

  7. JAVA根据URL生成二维码图片、根据路径生成二维码图片

    引入jar包 zxing-2.3.0.jar.IKAnalyzer2012_u6.jar 下载地址:https://yvioo.lanzous.com/b00nlbp6h                ...

  8. Java中的URL类

    Java的网络类可以让你通过网络或者远程连接来实现应用.而且,这个平台现在已经可 以对国际互联网以及URL资源进行访问了.Java的URL类可以让访问网络资源就像是访问你本地的文件夹一样方便快捷.我们 ...

  9. Java常见网络操作(URL类,InetAddress类,URLConnection类)

    *****************InetAddress********************** InetAddress:用于标识网络上的硬件资源(如,IP,主机名,域名等).    对于Inet ...

随机推荐

  1. 双重ScrollView,RecyclerView联动实例

    最近收到一个需求,如图,大家一看,不就是一个简单的表格吗,RecyclerView就搞定了 我一开始也是这么想的,但是当我继续听下去 需求是左边党支部栏目只能上下滑动,之后联动右边下方表格一起上下滑动 ...

  2. BP neural network optimized by PSO algorithm on Ammunition storage reliability prediction 阅读笔记

    1.BP neural network optimized by PSO algorithm on Ammunition storage reliability prediction 文献简介文献来源 ...

  3. 『计算机视觉』Generalized Intersection over Union: A Metric and A Loss for Bounding BoxRegression

    论文地址:Generalized Intersection over Union 一.相关工作 目标检测精度标准 度量检测优劣基本基于 IOU,mAP 是典型的基于 IOU 的标准,但是 mAP 仅有 ...

  4. HDU 3月ACM模拟赛T10 COUNT

    题面 //来自TKJ的友好提供 ^_^ 然后我又被卡了半天不知道怎么转移N3 于是听CWY给我讲 终于会了 (虽然他讲的不是很清楚QAQ 但是凭着我们之间根本不存在的默契竟然达成了心智联通) 重点在于 ...

  5. 学习PYTHON之路, DAY 9 - Socket网络编程

    __import__ 两种方法,官方推荐下面的方法 Socket 参数介绍 sk.bind(address) 必会 s.bind(address) 将套接字绑定到地址.address地址的格式取决于地 ...

  6. EasyUI的textbox的disable ,readonly 用法

    EasyUI的textbox,如果用了disable, 那么提交时,后台mvc controller是取不到值的, 如果用了Readonly, textbox的样式又没有变化, 让人一眼就感知到哪些是 ...

  7. Win10系列:C#应用控件进阶4

    多边形 若要绘制多边形需要用到Polygon元素,并通过定义一系列的点绘制多边形.Polygon类型的对象有Points属性, 这个属性用来定义组成边的点集.在前台代码中,使用空格分隔各个点,然后利用 ...

  8. 学习笔记------------解决margin塌陷

    首先来解释一下什么是marg塌陷? 父子嵌套元素垂直方向的margin,父子元素是结合在一起的,他们两个会取其中最大的值 正常情况下应该是父级元素相对于浏览器定位,而子级元素相对于父级元素定位 但是m ...

  9. python(列表2)

    1.remove(删除指定值的元素) x = ['to','be','or','not','to','be'] x.remove('be') x ['to','or','not','to','be'] ...

  10. 关于input

    form表单的使用: 1.iuput:type:类型有很多常用的: text:输入的内容为文本格式(内容可见) password:输入的内容为......(内容不可见) radio:显示为单选框(框为 ...