用http post連接外部服務

一 接口說明

在這裏插入圖片描述

二 實現


### 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); 
	  }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章