Java后端调用接口post/get
1.post
如图所示,我们经常会遇到传递参数的时候将参数放在header里进行传输,但是接口文档参数是在header的参数,并不是在json体里面的(当然json体里面也会带其他参数)
比如我们已post请求为例子
import com.alibaba.fastjson.JSONObject; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; public static String customerClient(String userAccount, String password, String authToken) throws Exception { HttpPost httpPost = new HttpPost("http://118.122.126.10:11134/customer-client/custom/load"); CloseableHttpClient client = HttpClients.createDefault(); String respContent = null; // json方式 JSONObject jsonParam = new JSONObject(); jsonParam.put("userAccount", userAccount); jsonParam.put("password", password); jsonParam.put("sign", GetSignUtil.getSign(new String[]{userAccount, password})); StringEntity entity = new StringEntity(jsonParam.toString(), "utf-8");//解决中文乱码问题 entity.setContentEncoding("UTF-8"); entity.setContentType("application/json"); httpPost.addHeader("userAccount", userAccount); httpPost.addHeader("authToken", authToken); httpPost.setEntity(entity); HttpResponse resp = client.execute(httpPost);//执行时机 if (resp.getStatusLine().getStatusCode() == 200) { HttpEntity he = resp.getEntity(); respContent = EntityUtils.toString(he, "UTF-8"); } JSONObject jsonObject = JSONObject.parseObject(respContent); return respContent; }
其中最主要的代码
httpPost.addHeader("userAccount", userAccount);
httpPost.addHeader("authToken", authToken);
这样就可以实现带参数或者token,如果想token在postman里面是全局变量也是可以的,请参考其他博客,我只是顺便插一嘴
注意以下方式可能不成功
HttpURLConnection.setDefaultRequestProperty("userAccount", userAccount);//过时
HttpURLConnection.setDefaultRequestProperty("authToken", authToken);//过时
2.get
HttpGet httpGet = new HttpGet("http://124.239.153.31:9999/user/getCurrentUserInfo"); HttpClient getClient = HttpClients.createDefault(); // 设置请求头 httpGet.addHeader("token", ""); String respContent1 = null; JSONObject jsonParam1 = new JSONObject(); HttpResponse resp1 = null;//执行时机 try { resp1 = getClient.execute(httpGet); if (resp1.getStatusLine().getStatusCode() == 200) { HttpEntity he = resp1.getEntity(); respContent1 = EntityUtils.toString(he, "UTF-8"); } } catch (IOException e) { e.printStackTrace(); } JSONObject jsonObject1 = JSONObject.parseObject(respContent1);