ssh框架调用接口时参数疑惑

发布于 2021-12-08 18:18:03 字数 1914 浏览 799 评论 3

本人在调用接口的时候,发现一个问题一个普通的接口被调用的时候String参数为空,转成map类型的就显示正常了!接口如下图

controller

package com.hlmedicals.app.api.controller.location;

import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

@org.springframework.stereotype.Controller
@RequestMapping(value = "/con")
public class Controller {

	@RequestMapping(value = "test1")
	public void test1(@RequestBody String id){
		System.err.println("==========="+id);
	}
	
	
}

 

测试类

package com.hlmedicals.app.test.api.location;

import java.util.Map;

import net.sf.json.JSONObject;

import org.apache.commons.collections.map.HashedMap;

import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.hlmedicals.app.IConst;
import com.hlmedicals.app.api.util.HttpClientUtil;
import com.hlmedicals.app.core.util.SignUtil;
import com.hlmedicals.app.core.vo.JsonRe;
import com.hlmedicals.app.test.IConstTest;

/**
 * 根据pid获取地域信息
 */
public class TestLocationController {
    final static String urlBase = "http://localhost:9002/his/rest";

    public static void main(String[] args) {
        HttpClientUtil.token = IConst.TOKEN_DEFAULT;
        HttpClientUtil.doctorId = "8a8ab0b246dc81120146dc8181950052";
        findUrine();
    }

    private static void findUrine(){
		final Map map = new HashedMap();
		map.put("id","211022198908225117");
		new Thread(){
			public void run() {
				String url = urlBase + "/con/test1";
				Gson g = new Gson();
				String json = g.toJson(map);
				System.out.println("====--------====-----===="+json);
				String str = HttpClientUtil.post(json, url);
			};
		}.start();
	}
}

打印参数

====--------====-----===={"id":"211022198908225117"}

发送参数的json也看到了 ,{"id":"211022198908225117"},String类型的id为什么不能接收到呢?请大家懂得人为我解惑,谢谢!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

悸初 2021-12-09 14:55:15

请求中设定contentType为application/json就能接受了,默认是表单模式

羁拥 2021-12-09 13:55:39

使用@RequestParam(value="id")试试,不要用@RequestBody,@RequestBody会将所有post的参数进行POJO映射

另外要看你post的数据格式,如果你post一个json格式对象,那么接收方应当用一个POJO对象映射。

如class Pojo{

  String id;

  public void setId(String id){
         this.id = id;

  }

}

@RequsetMapping

public void post(@RequestBody Pojo pojo){

 }

平定天下 2021-12-08 20:43:21

String你怎么写的? String str = "211022198908225117"? 还是 String str = "{‘id’:‘211022198908225117’}"?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文