Java的URL类(二)

转: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 }

原文地址:https://www.cnblogs.com/wenhuang/p/9891223.html

时间: 2024-10-14 21:14:37

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

java之URL类

Java的网络类可以让你通过网络或者远程连接来实现应用.而且,这个平台现在已经可 以对国际互联网以及URL资源进行访问了.Java的URL类可以让访问网络资源就像是访问你本地的文件夹一样方便快捷.我们通过使用Java的URL类 就可以经由URL完成读取和修改数据的操作. 通过一个URL连接,我们就可以确定资源的位置,比如网络文件.网络页面以及网络应用程序等.其中包含了许多的语法元素.  从URL得到的数据可以是多种多样的,这些都需要一种统一的机制来完成对URL的读取与修改操作.Java语言在它的

Java的URL类(一)

转:https://www.cnblogs.com/blackiesong/p/6182038.html Java的URL类(一) Java的网络类可以让你通过网络或者远程连接来实现应用.而且,这个平台现在已经可 以对国际互联网以及URL资源进行访问了.Java的URL类可以让访问网络资源就像是访问你本地的文件夹一样方便快捷.我们通过使用Java的URL类 就可以经由URL完成读取和修改数据的操作. 通过一个URL连接,我们就可以确定资源的位置,比如网络文件.网络页面以及网络应用程序等.其中包含

java   net --------------------------------URL类

java   net ---------------------------URL类 package java_net; import java.net.MalformedURLException; import java.net.URL; /*  * 测试URL类  */ public class URL_Test {  public static void main(String[] args) { try { //我们需要构造一个URL对象,构造方法有很多种 /*  * 1.通过一个字符串

java.net.Url类的应用(网络编程)

一.认识URL 类 URL 代表一个统一资源定位符,它是指向互联网"资源"的指针.资源可以是简单的文件或目录,也可以是更为复杂的对象的引用,例如对数据库或搜索引擎的查询. 简单的可以把URL理解为包含:协议.主机名.端口.路径.查询字符串和参数等对象.每一段可以独立设置. 应用程序也可以指定一个"相对 URL",它只包含到达相对于另一个 URL 的资源的足够信息.HTML 页面中经常使用相对 URL. 相对 URL 不需要指定 URL 的所有组成部分.如果缺少协议.

一个简单的Java模板工具类(二)—简单表达式解析实现

以前写过一个, 用正则比较不高效, 所以用表达式解析方式又实现了一个, 练手. 以前的: http://my.oschina.net/haogrgr/blog/222349 现在的: import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; /**  * 非常非常简单的模板实现  *   * @author desheng.tu  * @date 2015年

java.net URL类的使用

URLDecoder.decode(String str)  将一个url进行解码 URL ul= new URL(uu);  构建URL对象 ul.getQuery() 得到参数请求部分 ul.getPort() 得到端口 ul.getProtocol() 得到协议 版权声明:本文为博主原创文章,未经博主允许不得转载.

Java使用zpxing.jar生成带url的二维码

第一步下载zpxing.jar包,并加载进来(网上有很多类似的jar包,这里小编使用的是谷歌提供的jar) 二维码工具类: package com.zpxing.controller; import java.awt.BasicStroke; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Shape; import java.awt.geom.RoundRe

Java 第九章 类的方法 (二)笔记

Java 第九章 类的方法 (二) 一.带参的语法:     访问修饰符 返回值类型 方法名称(参数列表){         方法体: }    例:public String getFuirt(String fuirt){    String zhi=fuirt+m+"汁";    return zhi; } 二.调用带参方法:      同类中, (非静态方法),方法名(参数列表):      不同类中,对象.方法名(参数列表): 三.带参方法的参数:     1.形参的数据类型和

JAVA学习第六十三课 — 关于客户端服务端 && URL类 & URLConnection

常见的客户端和服务端 客户端:       浏览器:IE:弹窗口,猎豹:弹窗口,多标签,争强效果 服务端:       服务器:TomCat:1.处理请求 2.给予应答 想让TomCat为我们工作,那么java写的相关类类必须实现interface Serverlet 浏览器强大之处就在于解析能力,众多格式,都可以解析 服务端和客户端原理 自定义服务端: public static void main(String[] args) throws IOException { ServerSocke