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等)
使用 HttpClient 向本地 json 文件发送 POST 请求