经过前几次的编写,发现很多代码是重复的,所以就写了一个Data包
import net.sf.json.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.List;
public class Data {
public String getToken(String xh, String pwd) throws URISyntaxException, IOException {
CloseableHttpClient httpClient = HttpClients.createDefault();
URIBuilder uriBuilder = new URIBuilder("http://zswxyjw.minghuaetc.com/znlykjdxswxy/app.do");
uriBuilder.setParameter("method", "authUser").setParameter("xh", xh).setParameter("pwd", pwd);
HttpGet httpGet = new HttpGet(uriBuilder.build());
CloseableHttpResponse response = httpClient.execute(httpGet);
String s = null;
if (response.getStatusLine().getStatusCode() == 200) {
HttpEntity entity = response.getEntity();
s = EntityUtils.toString(entity, "utf-8");
}
JSONObject obj = new JSONObject();
obj = obj.fromObject(s);
Object token = obj.get("token");
return token.toString();
}
public JSONObject execute(List<BasicNameValuePair> list,String token) throws URISyntaxException, IOException {
CloseableHttpClient httpClient = HttpClients.createDefault();
URIBuilder uriBuilder = new URIBuilder("http://zswxyjw.minghuaetc.com/znlykjdxswxy/app.do");
for (BasicNameValuePair i:list) {
uriBuilder.setParameter(i.getName(),i.getValue());
}
HttpGet httpGet = new HttpGet(uriBuilder.build());
httpGet.setHeader("token",token);
CloseableHttpResponse response = httpClient.execute(httpGet);
HttpEntity entity = response.getEntity();
String s = EntityUtils.toString(entity, "utf-8");
JSONObject obj = new JSONObject();
obj = obj.fromObject(s);
return obj;
}
}
主要方法:
JSONObject execute 执行请求,返回JSONObject 对象
String getToken 模拟登陆,返回一个token字符串