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

Posted 8899man

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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"] = resMap
	this.ServeJson()

}

  

以上是关于java httpclient发送json 请求 ,go服务端接收的主要内容,如果未能解决你的问题,请参考以下文章

HttpClient模拟get,post请求并发送请求参数(json等)

JAVA发送HttpClient

使用 HttpClient 向本地 json 文件发送 POST 请求

java模拟post请求发送json

用java做一个httpClient 发送https 的get请求,需要证书验证的那种,求大神指点一下!

使用 HttpClient 和 C# 在 post 请求中发送 json