用http post连接外部服务

本文介绍了如何使用HTTP POST方法连接并调用外部服务。首先,详细阐述了接口的说明,接着详细描述了具体的实现步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 接口说明

在这里插入图片描述

二 实现


### 2.1发送通知给外系统

			url="http://ip:port/xxxx/standardOut/addStandard";
			Map<String, String> parameters=new HashMap<>();
			parameters.put("standardName", findOne.getStandardName());
			parameters.put("standardType", findOne.getCategory().getName());
			parameters.put("standardCode", findOne.getStandardCode());
			parameters.put("standardId", findOne.getId());
			parameters.put("url", this.fileUrl+findOne.getFileId()+".html");
			StringBuffer sb = new StringBuffer();
			for (String name : parameters.keySet()) {  
            	sb.append("\""+name+"\"").append(":").append("\""+parameters.get(name)+"\"").append(","); 
            }  
            String temp_params = sb.toString();  
            String param = "\"[{"+ temp_params.substring(0, temp_params.length() - 1)+"}]\"";
            Map<String, Object> map=new HashMap<>();
            map.put("param", param);
			String sendPost =HttpUtils.post(url,map);
			this.logger.info("外系统返回结果-------------------------------"+sendPost);

### 2.2HttpUtils.post接口


	private static Logger log = Logger.getLogger(HttpUtils.class);
    private static HttpClient client = new HttpClient();
	public synchronized static String post(String url, Map<String, Object> data)
	  {
	    return post(url, data, "UTF-8");
	  }
	
	public static String post(String url, Map<String, Object> data, String encoding)
	  {
	    PostMethod method = new PostMethod();
	
	    setCharset(method, encoding);
	    try
	    {
	      URI uri = new URI(url, true, encoding);
	      method.setURI(uri);
	    } catch (Exception e) {
	      log.error("uri create error.", e);
	      return null;
	    }
	
	    for (Iterator localIterator = data.keySet().iterator(); localIterator.hasNext(); ) { 
	    	String key = (String)localIterator.next();
	      //method.addParameter(key, StringUtil.toString(data.get(key)));
	    	method.addParameter(key,data.get(key).toString());
	    }
	
	    try
	    {
	      int statusCode = client.executeMethod(method);
	      if (statusCode == 200)
	      {
	        return method.getResponseBodyAsString();
	      }
	      log.error("execute method error:" + statusCode);
	      return String.valueOf(statusCode);
	    }
	    catch (Exception statusCode) {
	      log.error("execute method error.", statusCode);
	    }
	
	    return null;
	  }
	
	  private static void setCharset(HttpMethod method, String encoding)
	  {
	    HttpMethodParams params = method.getParams();
	    params.setHttpElementCharset(encoding);
	    params.setCredentialCharset(encoding);
	    params.setContentCharset(encoding); 
	  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值