独角兽企业重金招聘Python工程师标准>>>
因为项目是采用maven搭建的,所以先把所需要的jar包定义进来,我是采用apache的httpComponents第三方技术!如下:
<!-- httpcomponents --><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpcore</artifactId></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpmime</artifactId></dependency><dependency><groupId>jaxen</groupId><artifactId>jaxen</artifactId></dependency>
其次就是写调用客户端(get方式):
@Testpublic void getOrderList() throws Exception {CloseableHttpClient httpClient = HttpClients.createDefault();HttpGet httpGet = new HttpGet("接口请求路径……");
httpGet.setHeader("Accept", "application/json");//如果要返回json结果,则需要设置此请求头信息
CloseableHttpResponse httpResponse;try {httpResponse = httpClient.execute(httpGet);HttpEntity entity = httpResponse.getEntity();System.out.println(IOUtils.toString(entity.getContent()));} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
其次就是写调用客户端(POST方式):
导包都是一样,就是发送请求的实体不同 如下:
/* 获取用户留资信息接口:GetUserLeaveMsg */@Testpublic void GetUserLeaveMsg() throws Exception {CloseableHttpClient httpClient = HttpClients.createDefault();HttpPost httpPost = new HttpPost(URL + "?method=GetUserLeaveMsg");
//POST传递方式List<NameValuePair> nvps = new ArrayList<NameValuePair>();nvps.add(new BasicNameValuePair("date", "-12-01"));// yyyy-MM-ddnvps.add(new BasicNameValuePair("last_leave_msg_id", "0"));nvps.add(new BasicNameValuePair("CurPage", "1"));nvps.add(new BasicNameValuePair("PageSize", "50"));httpPost.setHeader("Accept", "application/json");httpPost.setEntity(new UrlEncodedFormEntity(nvps));CloseableHttpResponse httpResponse;try {httpResponse = httpClient.execute(httpPost);HttpEntity entity = httpResponse.getEntity();System.out.println(IOUtils.toString(entity.getContent()));} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
还会有一种就是传Json的方式,我也一并罗列出来了供大家参考:
/*** 新闻资讯类接口* * @throws Exception* @throws UnsupportedEncodingException*/@Testpublic void newsTest() throws Exception {CloseableHttpClient httpClient = HttpClients.createDefault();HttpPost httpPost = new HttpPost("接口请求url……");httpPost.addHeader("Authorization", "Basic " + sign);httpPost.setHeader("Accept", "application/json");httpPost.setHeader("Content-Type", "application/json");CloseableHttpResponse httpResponse;try {
//通过alibaba的fastJson的jar包来转成json所需要的数据格式Map<String, Object> params = new HashMap<String, Object>();List<String> list = new ArrayList<String>();list.add("2348");list.add("163");
params.put("DealerId", 66934);params.put("TypeId", 1);params.put("SeriesIds", list);String data = JSON.toJSONString(params);System.out.println("data-->" + data);/* 构造请求数据 */StringEntity myEntity = new StringEntity(data, ContentType.APPLICATION_JSON);/* 设置请求体 */httpPost.setEntity(myEntity);httpResponse = httpClient.execute(httpPost);HttpEntity entity = httpResponse.getEntity();System.out.println(httpPost.getURI().toString());System.out.println(IOUtils.toString(entity.getContent()));} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
就先写到这里了,还有通过SOAP协议定义的接口就下回再写,写得比较仓促难免会出错,如发现错误或者需要共同讨论的地方
如果觉得《webservice restful类型接口的调用实例》对你有帮助,请点赞、收藏,并留下你的观点哦!