一、客户端请求

public static String test(){
JSONObject obj = new JSONObject();
obj.put("cusName","禹州林业集团");
obj.put("socialCreditCode","11431000006542054G");
String parm = obj.toString();
String result = "";//BASE64加密的返回结果
String res = "";//解密后的字符串
PrintWriter out = null;
BufferedReader in = null;
try {
java.net.URL realUrl;
realUrl = new URL("http://127.0.0.1:9998/test/c/getC");
HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();
conn.setRequestMethod("POST");
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
conn.setRequestProperty("Content-Type", "text/plain;charset=utf-8");
conn.addRequestProperty("token","11111"); //设置header信息
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(parm);//json传参
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
System.out.println(res);
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
} finally {// 使用finally块来关闭输出流、输入流
try {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
return result;
}

二、服务端获取

@RequestMapping(value = "/c/getC",method=RequestMethod.POST)
public String getCustomerInfoForGGIP(HttpServletRequest request) throws Exception{
String cusName = "";
String socialCreditCode = "";
String result = "";
BASE64Encoder base64Encoder = new BASE64Encoder();
JSONObject resultObject = new JSONObject();
String token = request.getHeader("token");//获取header中内容
if(StringUtils.isEmpty(token)){
resultObject.put("code","1111");
resultObject.put("msg","鉴权的token不能为空!");
return resultObject.toString();
}
if(!"ZGCDB".equals(token)){
resultObject.put("code","1111");
resultObject.put("msg","鉴权不成功!");
return resultObject.toString();
}else{
String parm = "";
BufferedReader in = null;
in = new BufferedReader(new InputStreamReader(request.getInputStream()));
String line;
while ((line = in.readLine()) != null) { //获取参数
parm += line;
}
if(parm!=null){
JSONObject paramJson = JSONObject.fromObject(parm);
if(!paramJson.isNullObject()){
cusName = paramJson.getString("cusName");
socialCreditCode = paramJson.getString("socialCreditCode");
result = customerBo.getCustomerInfoForGGIP(cusName,socialCreditCode,request);
}else{
resultObject.put("code","1111");
resultObject.put("msg","参数解析错误!");
return resultObject.toString();
}
}else{
resultObject.put("code","1111");
resultObject.put("msg","参数解析错误!");
return resultObject.toString();
}
}
return result;
}

java http协议,添加header以及post传参,以及服务端获取的更多相关文章

  1. Java 常用类库一,main方法传参String[] args;获取输入Scanner ;hasNext();hasNextInt()

    1. main方法传参 package com.zmd.common_class_libraries; /** 给mian方法传参测试 */ public class MainArgsTest { p ...

  2. springboot 服务端获取前端传过来的参数7种方式

    下面为7种服务端获取前端传过来的参数的方法  1.直接把表单的参数写在Controller相应的方法的形参中,适用于GET 和 POST请求方式 这种方式不会校验请求里是否带参数,即下面的userna ...

  3. java 从零开始手写 RPC (03) 如何实现客户端调用服务端?

    说明 java 从零开始手写 RPC (01) 基于 socket 实现 java 从零开始手写 RPC (02)-netty4 实现客户端和服务端 写完了客户端和服务端,那么如何实现客户端和服务端的 ...

  4. jsp页面之间传参用el表达式获取

    jsp页面之间传参用el表达式获取 参数方法:${param.参数名} session方法:${session.变量名}

  5. Node.js:上传文件,服务端如何获取文件上传进度

    内容概述 multer是常用的Express文件上传中间件.服务端如何获取文件上传的进度,是使用的过程中,很常见的一个问题.在SF上也有同学问了类似问题<nodejs multer有没有查看文件 ...

  6. Java通过URL 从web服务端获取数据

    1.Java 通过HttpURLConnection Post方式提交json,并从服务端返回json数据 package Demo.Test; import java.io.ByteArrayOut ...

  7. java swagger ui 添加header请求头参数

    我用到的swagger 主要有三款产品,swagger editor,swagger ui 和swagger codegen. swagger editor:主要是一个本地客户端,用来自己添加api, ...

  8. 使用java传参调用exe并且获取程序进度和返回结果的一种方法

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在某个项目中需要考虑使用java后台调用由C#编写的切图程序( ...

  9. java与js交互,相互调用传参

    随着前端技术的发展与H5的广泛使用,移动端采用native+h5的方式越来越多了,对于Android来说就涉及到java与js的交互,相互调用传参等.下面就来看一下java与js交互的简单demo. ...

  10. FusionCharts-堆栈图、xml格式、刷新数据、添加事件link、传参

    *起因* 本来想用Chart.js来搞图表的, 但是来了个新需求,想搞的华丽点,毕竟对Chart.js来说,实现有点难度, *做出的改变* 最终选择了FusionCharts, *难点* 网上关于Fu ...

随机推荐

  1. BigDecimal数据处理方法总结

    前言 ‌BigDecimal是Java编程语言中位于java.math包中的一个类,主要用于进行高精度的十进制数计算‌.它提供了对任意精度的十进制数进行精确计算的能力,适用于需要保持精度和执行准确计算 ...

  2. WPS Pro 最新专业版,一站式办公

    聊一聊 随着科技的进步,办公软件已经成为现代人工作和学习中不可或缺的重要工具.无论是在企业.学校还是个人使用中,办公软件都能够帮助我们提高工作效率.组织信息和进行沟通.在众多的办公套件中,微软的Off ...

  3. windbg 调试 c++ std::exception

    由于c++ std::exception在windbg里面调用堆栈显示不正确,可以通过加载了系统pdb和软件pdb后,!analyze -v可以分析出来,所有需要配置系统pdb. 1.把exe,pdb ...

  4. MAC清理

    今日分享 Mac清理 有很多三方软件可以清理,以前用过腾讯的柠檬lite,每次就清个几百兆,系统数据感觉还是得自己手动清理才行 今天电脑又在提醒储存空间不足了,一看占用发现系统数据占了100多个G,学 ...

  5. 鲲鹏cpu

    cat /etc/openEuler-release sudo dmidecode -t processor |grep Version   lscpu  

  6. ScheduleServerRunnable2

    package com.xx.schedule.thrift.server; import com.xx.schedule.thrift.service.ScheduleService; import ...

  7. 推荐一个C#轻量级矢量图形库

    推荐一个轻量级矢量图形库,可用于生成 PDF.SVG.PNG等. 01 项目简介 VectSharp 是一个功能强大的 C# 库,专门用于创建矢量图形,包括文本,不依赖任何第三方,支持跨平台运行,包括 ...

  8. Qt/C++音视频开发66-音频变速不变调/重采样/提高音量/变速变调/倍速播放/sonic库使用

    一.前言 之前在做倍速这个功能的时候,发现快速播放会有滴滴滴的破音出现,正常1倍速没有这个问题,尽管这个破音间隔很短,要放大音量才能听到,但是总归是不完美的,后面发现,通过修改qaudiooutput ...

  9. Qt/C++编写视频监控系统82-自定义音柱显示

    一.前言 通过音柱控件实时展示当前播放的声音产生的振幅的大小,得益于音频播放组件内置了音频振幅的计算,可以动态开启和关闭,开启后会对发送过来的要播放的声音数据,进行运算得到当前这个音频数据的振幅,类似 ...

  10. v-for和v-if一起使用时的坑:The 'XXX' expression inside 'v-for' directive should be replaced with a computed property that returns filtered array instead. You should not mix 'v-for' with 'v-if'

    目的:Vue - ElementUI中循环渲染表格,控制字段的显示与隐藏 v-if与v-for同时使用. 在Vue中使用v-for循环一个数组/对象时,如果再使用v-if,那么会提示使用计算属性(能正 ...