Java Post接口调用

2023-11-18

(1)通过Cookies.properties管理cookies

cookies.key1 = .AspNetCore.Session
cookies.key2 = TS01d2d863
cookies.key3 = ssoinfo
cookies.key4 = ssoinfo24
cookies.value1 = CfDJ8ANxMHG%2FRqFCldmuIDAedzPQCxXH%2F4MQOziHM6ylx68sZ52B83DlrCAa8FBRRZnBP6f%2BbL2nBdE%2BZcb5sSXLGAKUwjsNNoPgnUzC1Y4ODUGmDNaTLzBnfMFr3LuelaNamu8e4rJ9L9oq61fmmRDxqgPZnZ11n8l3UT%2BsABTFcXp4
cookies.value2 = 01b0c3cbf0a7a43acf6c9195af9724460a7a4e6e2fb9757dca95571026ffb0ec5dd58fc95401577230300c321889910ad61e8a3dc95f436fffbd9fde73b4acc52ec807d274f14b0308814f3316f382b96c8143c47e33d8ef84e797f3e0d668873b2f922d1d
cookies.value3 = 80002344
cookies.value4 = 80002344
cookies.domain = www.domian.com

(2)编码

package org.domain.project.api;

import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpResponse;
import org.apache.http.client.CookieStore;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.cookie.BasicClientCookie;
import org.apache.http.util.EntityUtils;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

import java.io.IOException;
import java.util.Locale;
import java.util.ResourceBundle;

/**
 * 接口访问认证
 */
public class PostTest {
    private static HttpClient httpClient = new DefaultHttpClient();
    private static HttpPost post;
    private static HttpResponse response;
    private CookieStore cookieStore;
    private String result = null;
    private String url = null;
    private String param = null;
    private ResourceBundle bundle;

    @BeforeTest
    public void initCookies() throws IOException {
        cookieStore = new BasicCookieStore();
        bundle = ResourceBundle.getBundle("cookies", Locale.CHINA);
        String key1 = bundle.getString("cookies.key1");
        String key2 = bundle.getString("cookies.key2");
        String key3 = bundle.getString("cookies.key3");
        String key4 = bundle.getString("cookies.key4");
        String value1 = bundle.getString("cookies.value1");
        String value2 = bundle.getString("cookies.value2");
        String value3 = bundle.getString("cookies.value3");
        String value4 = bundle.getString("cookies.value4");
        String domain = bundle.getString("cookies.domain");

        BasicClientCookie cookie1 = new BasicClientCookie(key1, value1);
        cookie1.setDomain(domain);
        cookie1.setPath("/");

        BasicClientCookie cookie2 = new BasicClientCookie(key2, value2);
        cookie2.setDomain(domain);
        cookie2.setPath("/");

        BasicClientCookie cookie3 = new BasicClientCookie(key3, value3);
        cookie3.setDomain(domain);
        cookie3.setPath("/");

        BasicClientCookie cookie4 = new BasicClientCookie(key4, value4);
        cookie4.setDomain(domain);
        cookie4.setPath("/");

        cookieStore.addCookie(cookie1);
        cookieStore.addCookie(cookie2);
        cookieStore.addCookie(cookie3);
        cookieStore.addCookie(cookie4);
    }

    @Test()
    public void getChannelInfo(){
        url = "https://www.domain.com/getChannlInfo";
        param = "{\"PageIndex\":1,\"PageSize\":15,\"Subcmt\":\"xxxxx\",\"SeqNo\":\"TX-000000\"}";

    }

    @Test()
    public void getUserCheckInfo(){
        url = "https://www.domian.com/rds/DeviceBase/GetDeviceInfos";
        param = "{PageIndex: 1, PageSize: 15, InstalStartDate: \"\", InstalEndDate: \"\", DueStartdate: \"\", DueEndDate: \"\"}";
    }

    @AfterTest
    public void doPost(){
        post = new HttpPost(url);
        JSONObject jsonObject = JSONObject.parseObject(param);
        StringEntity entity = new StringEntity(jsonObject.toString(), "utf-8");
        entity.setContentEncoding("UTF-8");
        entity.setContentType("application/json");
        post.setEntity(entity);
        httpClient = HttpClients.custom().setDefaultCookieStore(cookieStore).build();
        try {
            response = httpClient.execute(post);
            result = EntityUtils.toString(response.getEntity(),"utf-8");
            System.out.println(result);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java Post接口调用 的相关文章

随机推荐

  • 第08章 Spring-Boot 使用简介

    第08章 Spring Boot 简介 Spring框架功能很强大 但是就算是一个很简单的项目 我们也要配置很多东西 因此就有了Spring Boot框架 它的作用很简单 就是帮我们自动配置 Spring Boot框架的核心就是自动配置 只
  • 轻量级自动化测试框架WebZ

    一 什么是WebZ WebZ是我用Python写的 关键字驱动 的自动化测试框架 基于WebDriver 设计该框架的初衷是 用自动化测试让测试人员从一些简单却重复的测试中解放出来 之所以用 关键字驱动 模式是因为我觉得这样能让测试人员 测
  • 数据库中索引会失效的几种情况(oracle)

    文章目录 数据库中索引会失效的几种情况 oracle 1 没有 WHERE 子句 2 使用 IS NULL 和 IS NOT NULL 3 WHERE 子句中使用函数 4 使用 LIKE T 进行模糊查询 5 WHERE 子句中使用不等于操
  • 输入两个正整数,输出它们的最大公约数和最小公倍数

    include
  • python 列表元组字典集合相关知识

    python 数据类型 列表 可变数据类型 列表的创建 或者 list 列表的索引 由下标0开始 最后一个为 1 列表的切片 list start end step 列表的计算 支持 等方法 列表的方法 格式 列表名称 方法名字 index
  • 如何结束8080端口的进程

    1 找到8080端口进程 win r 输入cmd打开终端窗口 输入netstat aon findstr 8080 找出所有的进程 2 结束对应的进程 taskkill F PID 53408
  • tinymce 去掉编辑器换行默认增加的p标签

    问题 tinymce 编辑器里面使用回车换行后会自动添加p标签 解决方法 增加forced root block这个属性 替换为空后 换行就没有p标签了 格式 forced root block 删除在tinymce中自动添加的p标签 如下
  • HashMap中为何X % length = X & (length - 1)(求余%和与运算&转换问题)

    目录 一 引出问题 二 结论 三 分析过程 总结 一 引出问题 在前面讲解 HashMap 的源码实现时 有如下几点 初始容量为 1 lt lt 4 也就是24 16 负载因子是0 75 当存入HashMap的元素占比超过整个容量的75 时
  • Pod控制器(一)ReplicaSet

    目录 1 关于Pod控制器 1 1Pod控制器概述 1 2 控制器与Pod对象 1 3 ReplicaSet控制器 1 3 1 ReplicaSet概述 1 3 2 创建ReplicaSet 1 3 3 ReplicaSet管控下的Pod对
  • ajax同步异步的具体事例,Ajax同步和异步(示例代码)

    Ajax在默认情况下是异步执行的 即其属性 async boolean 是否异步 同步和异步的区别 同步 Client 向 Server请求数据 直到该部分数据返回时 Client在请求返回值后的相应程序队列才会按顺序执行 在此期间 Cli
  • 微信小程序 车牌号输入组件

    概述 一个小组件 用于方便用户输入车牌号码 详细 概述 有时候我们开发过程中会遇到需要用户输入车牌号的情况 让客户通过自带键盘输入 体验不好且容易出错 例如车牌号是不能输入O和I的 因此需要有一个自定义的键盘 让客户输入正确的车牌号 详细
  • 基于MyApps低代码平台生成的CRM实现客户的高效管理

    随着市场的发展 客户开始变得越来越重要 因此很多公司开始追求客户数量用尽浑身解数 可盲目发展 一股脑的想要扩大客户数量 也导致企业无法对客户进行有效的管理 不可避免地出现以下问题 1 没有对新客户做好分析 也疏于老客户的管理 导致客户流失的
  • 基于Qt的OpenGL编程(3.x以上GLSL可编程管线版)---(十七)深度测试

    Vries的教程是我看过的最好的可编程管线OpenGL教程 没有之一 其原地址如下 https learnopengl cn github io 04 20Advanced 20OpenGL 01 20Depth 20testing 关于深
  • 双目标定(二)单目标定基本原理

    主体思路 先处理纯二维平面的畸变问题 此处略过 矫正图片后 再来求解相机内外参数 基本思路是求得每个标定板对应的单应矩阵 再联合优化所有标定板数据得到相机内参矩阵 再得到每个标定板对应的外参 1 标定板平面到像平面的单应矩阵H 则对于每个棋
  • 短视频制作难度大吗?怎么剪辑短视频?

    随着抖音 快手等视频分享软件的兴起 很多人已经开始尝试制作短视频分享 那么 对于视频制作新手来说 短视频的制作难度大吗 其实 只要选对了视频制作软件 视频制作将会变得相当简单 在众多视频剪辑软件中 会声会影因其丰富的视频制作功能 直观的操作
  • python识别图像中的文字

    我们想识别图像中对我们有用的评论 所以需要卡一个阈值来仅仅获得对我们有用的信息 import easyocr 创建reader对象 import json reader easyocr Reader en result list reade
  • git --amend用法

    git commit amend 这个命令是让我们可以对上一次提交有修改 可以修改文件也可以修改说明 不产生新的commit 在我们有一次提交 然后提交之后评审发现代码有问题 我们没有进行和入 需要重新修改 但是我们又不能产生新的commi
  • IDEA中自动生成类图方法

    1 打开设置 File Setting或windows下按Ctrl Alt S 2 找到 Tools Diagrams 如下图 3 在Java Class Diagrams 中选中需要生成类图的对象 4 选中需要生成类图的对象 然后按Ctr
  • 将形如 0xAABBCC拆分成形如 三个数0xAA,0xBB,0xCC 及逆过程

    将形如 0xAABBCC拆分成形如 三个数0xAA 0xBB 0xCC pre class java private static int Int2Arr int a span span int s new int 3 span span
  • Java Post接口调用

    1 通过Cookies properties管理cookies cookies key1 AspNetCore Session cookies key2 TS01d2d863 cookies key3 ssoinfo cookies key