java httpclient发送json 请求 ,go服务端接收

/**
*java客户端发送http请求
*/
package com.xx.httptest;/*** Created by yq on 16/6/27.*/import java.io.IOException; import java.net.URLEncoder; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.methods.RequestEntity; import org.apache.commons.httpclient.methods.StringRequestEntity; import org.apache.http.params.CoreConnectionPNames; import org.json.JSONException; import org.json.JSONObject;public class HttpClientTest {public static void main(String[] args) throws Exception {String url = "http://localhost:8030/workflowapi/workflowextend";String host = "www.127.0.0.1";String param = "startCity=" + URLEncoder.encode("杭州", "utf-8") + "&lastCity=&theDate=&userID=";HttpClient httpClient = new HttpClient();httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 60000);//httpClient.getHostConfiguration().setHost(host, 8030, "http");//HttpMethod method = getMethod(url, param);HttpMethod method = postMethod1(url);System.out.println("打印发送状态---->");//System.out.println(method.getStatusCode());int sendStatus = 0;try {sendStatus = httpClient.executeMethod(method);System.out.println("打印发送状态");System.out.println(sendStatus);System.out.println("dddddddd");String response = method.getResponseBodyAsString();System.out.println(response);} catch (Exception e) {e.printStackTrace();} finally {method.releaseConnection();}//String response = new String(method.getResponseBodyAsString().getBytes("ISO-8859-1"));               //System.out.println(response);}private static HttpMethod getMethod(String url,String param) throws IOException {GetMethod get = new GetMethod(url + "?" + param);get.releaseConnection();return get;}/*发送form表单参数*/private static HttpMethod postMethod(String url) throws IOException {PostMethod post = new PostMethod(url);post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");NameValuePair[] param = {new NameValuePair("startCity", "杭州"),new NameValuePair("lastCity", "沈阳"),new NameValuePair("userID", ""),new NameValuePair("theDate", "")};post.setRequestBody(param);post.releaseConnection();return post;}/*发送json数据*/private static HttpMethod postMethod1(String url) throws IOException{PostMethod post = new PostMethod(url);//post.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8");post.setRequestHeader("Content-Type","application/json");JSONObject jsonObject = new JSONObject();JSONObject jsonObject2 = new JSONObject();try {jsonObject.put("aaaaa","ddddd");jsonObject.put("bbbbb","ddddd2");jsonObject.put("ccccc","ddddd3");jsonObject2.put("55555",jsonObject);jsonObject2.put("66666","testtest");} catch (JSONException e) {e.printStackTrace();}RequestEntity requestEntity = new StringRequestEntity(jsonObject2.toString(),"text/xml","UTF-8");post.setRequestEntity(requestEntity);post.releaseConnection();return post;}}

  

go 服务端

func (this *WorkflowApiController) WorkFlowExtend() {fmt.Println("打印post数据")fmt.Println(this.Ctx.Request.Body)body, _ := ioutil.ReadAll(this.Ctx.Request.Body)var dat map[string]interface{}if err := json.Unmarshal(body, &dat); err == nil {fmt.Println("打印map----->",dat)}else {fmt.Println("打印错误----->",err.Error())}fmt.Println(this.GetString("startCity"))formdata := this.GetString("formdata")fmt.Println("打印接收数据------>>>>>",formdata)formdataMap := map[string]interface{}{}json.Unmarshal([]byte(formdata), &formdataMap)//fmt.Println("调用http接口打印--->>,",formdataMap)resMap := map[string]interface{}{}resMap["code"] = "1"this.Data["json"] = resMapthis.ServeJson()}

  

转载于:https://www.cnblogs.com/8899man/p/5622373.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/418356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 定时备份mysql数据库

首先要先搞清楚两个概念: ①、mysqldump,mysqldump是mysql的逻辑备份工具,它不是linux的命令,工作原理类似产生一些列sql语句,对数据库进行指定的逻辑备份。 最简洁的形式是:mysqldump -uuserName -ppassW…

前端学习(1992)vue之电商管理系统电商系统之实现搜索和清空

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

4123: 马走日,2797:最短前缀 Trie,2362:Square 能否拼接为正方形

4123: 马走日 深度优先搜索 回溯 ///马走日 int f[21][22],n,m,t; //f数组记录点有没有走过int x[10]{-2,-2,-1,1,2,2,1,-1},y[10]{-1,1,2,2,1,-1,-2,-2};//八个方向 int x1,y1,ans; void dfs(int a,int b) //搜索过程 {bool ptrue; //标记,判断马是否可以遍…

前端学习(1993)vue之电商管理系统电商系统之根据id删除数据

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

苹果开发者地址1

https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/ra/ng/app转载于:https://www.cnblogs.com/zhangchengyuan/p/5623348.html

C++算法一些常用的stl函数

1.lower_bound( )和upper_bound( ) lower_bound( )和upper_bound( )都是利用二分查找的方法在一个排好序的数组中进行查找的 在从小到大的排序数组中, lower_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字&a…

LINUX 常用命令集合

su su命令是最基本的命令之一,常用于不同用户间切换。例如,如果登录为 user1,要切换为user2,只要用如下命令: $su user2 然后系统提示输入user2口令,输入正确的口令之后就可以切换到user2。完成之后就可…

前端学习(1994)vue之电商管理系统电商系统之通过编程导航跳转到商品导航界面

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

转载CSDN博客步骤

转载CSDN博客步骤: 1.CSDN博客页面右键,点击【检查】 点击检查后,页面右侧出现html代码,如下图 2.如果需要转载全文,则在html代码下侧点击选中article_content 即可,会在代码框中自动选中article_co…

android深度探索 HAL及驱动开发 第八章

第八章 读书笔记 本章主要讲蜂鸣器的驱动,蜂鸣器是S3cC6410开发板上带的一个硬件设备,本节将介绍蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动。本节讲介绍把linux驱动分成多个文件的方式。这些文件中的数据结构、函数的代码也可以被多个不同…

前端学习(1995)vue之电商管理系统电商系统之添加页面的基本结构

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

JDK1.7和JDK1.8中HashMap是线程不安全的,并发容器ConcurrentHashMap模型

一、HashMap是线程不安全的 前言 只要是对于集合有一定了解的一定都知道HashMap是线程不安全的,我们应该使用ConcurrentHashMap。但是为什么HashMap是线程不安全的呢,之前面试的时候也遇到到这样的问题,但是当时只停留在***知道是***的层面上…

前端学习(1996)vue之电商管理系统电商系统之美化步骤条

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

三种基本背包问题

一、0/1背包问题 问题描述:有n件物品和容量为m的背包 给出i件物品的重量以及价值 求解让装入背包的物品重量不超过背包容量 且价值最大 。 特点:这是最简单的背包问题,特点是每个物品只有一件供你选择放还是不放。 ① 二维解法 设f[i][j]表示前 i 件物品…

java中sesion

Session*Cookie基于客户端,不安全,并且大小和个数的限制。*Session域对象,范围一次会话范围,存个人相关的数据。*setAttribute(String name,Object value);*Object getAttribute(String name);*String getId() 获取session的唯一的…

前端学习(1997)vue之电商管理系统电商系统之渲染tab栏标签

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

LeetCode刷题过程中的一些小tips

0. 1. 发现没,与数组遍历、当前元素和前后元素大小比较 相关的都用单调栈 2. sql运行顺序查一下(运行顺序依次是from、where、group by、select order by。先根据s1.Id进行分组,然后计算(count)组内大于等于score的个数(去重),也…

Android之WebView网页滚动截图

WebView 网页滚动截屏,可对整个网页进行截屏而不是仅当前屏幕哦! 注意若Web页面存在position:fixed; 的话得在调用前设置为 position:absolute; 哦,否则会出现很多次的,请看下面的具体解说吧!! private st…

前端学习(1998)vue之电商管理系统电商系统之实现步骤条和tab栏的数据

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

反转链表--清晰易懂的两种方法

反转一个单链表。如下示例:: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL public class ListNode {int val;ListNode next;ListNode(int x) {val x;} }一、 迭代法: 注意观察示例:1->2->3-…