1 将java对象类转成json格式

首先引入依赖jar文件

注意依赖文件的版本号,高版本可能没有对应的类

2 我的实体类中包含内部类注意内部类要public才能被序列化成json格式

import java.util.List;

public class EuityParam {

    public EuityParam(String filter,List<String> args)
{
super();
this.filter=new Param0(filter);
this.args=new Param1(args);
} private Param1 args; public Param1 getArgs()
{
return args;
}
public void setArgs(Param1 _Param1)
{
this.args=_Param1;
} private Param0 filter; public Param0 getFilter()
{
return filter;
}
public void setFilter(Param0 _param0)
{
this.filter=_param0;
}
public class Param1
{
public List<String> getNameList() {
return nameList;
}
public void setNameList(List<String> nameList) {
this.nameList = nameList;
}
public Param1(List<String> nameList)
{
this.nameList=nameList;
}
private List<String> nameList; }
public class Param0
{
public Param0(String key)
{
this.key=key;
}
private String key; public String getKey()
{
return key;
}
public void setKey(String key)
{
this.key=key;
}
} }

3 导入包文件

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

4 序列化

        List<String> nameLst=new LinkedList<String>();
nameLst.add("AIR PRODUCTS & CHEMICALS INC");
nameLst.add("AMAZON.COM INC");
nameLst.add("ALTRIA GROUP INC");
nameLst.add("APPLE INC");
nameLst.add("ALPHABET INC");
EuityParam euityParam=new EuityParam("EquityNameMatching", nameLst); JSONObject jsonData= JSONObject.fromObject(euityParam);
System.out.println(jsonData);

5 结果:

{
"args": {
"nameList": [
"AIR PRODUCTS & CHEMICALS INC",
"AMAZON.COM INC",
"ALTRIA GROUP INC",
"APPLE INC",
"ALPHABET INC"
]
},
"filter": {
"key": "EquityNameMatching"
}
}

6 接口的调用,这个调用是post

private static String doPost(URL url, Map<Object, Object> nameValuePairs, String userAgent, int redirescts)
throws IOException {
// TODO Auto-generated method stub
StringBuilder response = new StringBuilder();
// HttpURLConnection可以处理重定向
HttpURLConnection connect = (HttpURLConnection) url.openConnection();
if (userAgent != null) {
connect.setRequestProperty("Authorization", userAgent);//设置http请求头
}
if (redirescts >= 0) {
// 连接到服务器之前关闭自动重定向
connect.setFollowRedirects(false);
}
// 设置请求的输出流
connect.setDoOutput(true);
// 构建往请求body内写入请求数据的写入流
OutputStream out = connect.getOutputStream();
try (PrintWriter write = new PrintWriter(out)) {
boolean first = true;
for (Entry<Object, Object> pair : nameValuePairs.entrySet()) {
if (first) {
first = false;
} else {
write.print('&');
}
String name = pair.getKey().toString();
String value = pair.getValue().toString();
write.print(name);
write.print('=');
write.print(URLEncoder.encode(value, "UTF-8"));
}
} // 获取请求的编码类型
String encoding = connect.getContentEncoding();
if (encoding == null) {
encoding = "UTF-8";
} // 如果redirect大于0表明有重定向
if (redirescts > 0) {
// 获取请求的响应码
int responseCode = connect.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_MOVED_PERM || responseCode == HttpURLConnection.HTTP_MOVED_TEMP
|| responseCode == HttpURLConnection.HTTP_SEE_OTHER) { // 获取重定向的位置
String location = connect.getHeaderField("Location");
if (location != null) {
java.net.URL base = connect.getURL();
// 断开本次连接
connect.disconnect();
return doPost(new URL(base, location), nameValuePairs, userAgent, redirescts - 1);
}
}
} else if (redirescts == 0) {
throw new IOException("重定向太多无法处理");
} // 获取响应流
InputStream responseStream = connect.getInputStream();
try (Scanner in = new Scanner(responseStream, encoding)) {
while (in.hasNextLine()) {
response.append(in.nextLine());
response.append("\n");
}
}
catch (Exception e)
{
// TODO: handle exception
InputStream err = connect.getErrorStream();
if (err == null) {
throw e;
}
try (Scanner in = new Scanner(err)) {
response.append(in.hasNextLine()); }
}
return response.toString();
}

JSONObject和URL以及HttpURLConnection的使用的更多相关文章

  1. [02] URL和HttpURLConnection类

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

  2. 文件上传---普通文件fileupload.jar和url文件httpUrlConnection

    文件上传---普通文件和url文件 主要用来学习使用common-fileupload.jar和java.net.httpURLConnection 普通文件: //上传xls文件到临时目录 if ( ...

  3. Url,HTTPUrlConnection(一)

    package com.cmy.urlcon; import java.io.BufferedReader; import java.io.IOException; import java.io.In ...

  4. 一.HttpClient、JsonPath、JsonObject运用

    HttpClient详细应用请参考官方api文档:http://hc.apache.org/httpcomponents-client-4.5.x/httpclient/apidocs/index.h ...

  5. AsyncTask异步加载和HttpURLConnection网络请求数据

    //获得网络数据    private void huodeshuju() { //这里是使用线程,已注释掉        /*new Thread(){            public void ...

  6. HttpURLConnection从网上获取Json数据并解析详解

    HttpURLConnection从网上获取Json数据并解析 1.HttpURLConnection请求数据的步骤 (1)构造一个URL接口地址: URL url = new URL("h ...

  7. HttpURLConnection实现两个服务端的对接

    在企业开发中,很多时候需要用到两个服务端的对接,在java类中进行连接并传递参数,其中的HttpURLConnection是一种轻量化,并且简单的方法! package httptest; impor ...

  8. Java网络连接之HttpURLConnection、HttpsURLConnection

    工具类包含两个方法: http请求.https请求 直接看代码: package com.jtools; import java.io.BufferedReader; import java.io.I ...

  9. HttpURLConnection 传输数据和下载图片

    一.传输字符串数据 在Android中HttpURLConnection传输数据是必不可少的,我们继续在“AsyncTask(异步任务)”案例的基础上添加. 案例: 首先我们做一个jsp的服务端,文件 ...

随机推荐

  1. Qt获取时间戳作为图片名

    Qt获取时间戳作为图片名 //保存图片 void SaveRealsenseImg() { QString picIndexName = dataSavePath; picIndexName.appe ...

  2. Promise.resolve的作用

    Promise.resolve方法有下面三种形式: Promise.resolve(value); Promise.resolve(promise); Promise.resolve(thenable ...

  3. [译]如何将dataframe的两列结合起来?

    我用pandas生成了一个20 x 4000的dataframe.其中两列名为Year和quarter.我想创建一个名为period的变量,将Year = 2000和quarter = q2变为200 ...

  4. LeetCode_237. Delete Node in a Linked List

    237. Delete Node in a Linked List Easy Write a function to delete a node (except the tail) in a sing ...

  5. REDIS类和方法说明

    package zhengxin.core;   import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; imp ...

  6. prometheus数据格式

    注意区分以下两种“数据格式”: 1.自定义exporter的时候所需要遵循的给prometheus提供数据的数据格式: https://yunlzheng.gitbook.io/prometheus- ...

  7. 英雄联盟测试静态IP(固态IP)和动态IP的网速测试

    在自己家里测试的,平时用迅雷下载大约600KB/S.同时,设置成动态IP的话,英雄联盟的延迟大约在100ms左右,如果设置成静态IP的话,大约是50ms左右,不过也有可能和DNS服务器的设置成静态有关 ...

  8. Python unittest框架实现appium登录

    import unittest from appium.webdriver import webdriver from ddt import data,ddt,unpack class MyTestC ...

  9. MySQL 过滤复制+复制映射 配置方法

    场景 node1 和 node2 为两台不同业务的MySQL服务器.业务方有个需求,需要将node1上的 employees库的departments .dept_manager 这2张表同步到 no ...

  10. 自组织特征映射神经网络(SOFM)

    1981年芬兰 Helsink 大学的 T·Kohonen 教授提出一种自组织特征映射网 (Self-Organizing Feature Map , SOFM ), 又称 Kohonen 网 . K ...