|
@@ -0,0 +1,142 @@
|
|
|
|
|
+package cn.iselab.mooctest.site.util.http;
|
|
|
|
|
+
|
|
|
|
|
+import java.io.IOException;
|
|
|
|
|
+import java.io.UnsupportedEncodingException;
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
+
|
|
|
|
|
+import cn.iselab.mooctest.site.models.Worker;
|
|
|
|
|
+import org.apache.commons.io.IOUtils;
|
|
|
|
|
+import org.apache.http.HttpEntity;
|
|
|
|
|
+import org.apache.http.HttpResponse;
|
|
|
|
|
+import org.apache.http.NameValuePair;
|
|
|
|
|
+import org.apache.http.ParseException;
|
|
|
|
|
+import org.apache.http.client.ClientProtocolException;
|
|
|
|
|
+import org.apache.http.client.entity.UrlEncodedFormEntity;
|
|
|
|
|
+import org.apache.http.client.methods.HttpGet;
|
|
|
|
|
+import org.apache.http.client.methods.HttpPost;
|
|
|
|
|
+import org.apache.http.client.methods.HttpUriRequest;
|
|
|
|
|
+import org.apache.http.impl.client.CloseableHttpClient;
|
|
|
|
|
+import org.apache.http.impl.client.DefaultHttpClient;
|
|
|
|
|
+import org.apache.http.message.BasicNameValuePair;
|
|
|
|
|
+import org.apache.http.protocol.HTTP;
|
|
|
|
|
+import org.apache.http.util.EntityUtils;
|
|
|
|
|
+import org.json.JSONObject;
|
|
|
|
|
+import org.slf4j.Logger;
|
|
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+public class HttpXmlClient {
|
|
|
|
|
+ private static Logger log = LoggerFactory.getLogger(HttpXmlClient.class);
|
|
|
|
|
+
|
|
|
|
|
+ public static String post(String url, Map<String, String> params) {
|
|
|
|
|
+ DefaultHttpClient httpclient = new DefaultHttpClient();
|
|
|
|
|
+ String body = null;
|
|
|
|
|
+
|
|
|
|
|
+// log.info("create httppost:" + url);
|
|
|
|
|
+ HttpPost post = postForm(url, params);
|
|
|
|
|
+
|
|
|
|
|
+ body = invoke(httpclient, post);
|
|
|
|
|
+
|
|
|
|
|
+ httpclient.getConnectionManager().shutdown();
|
|
|
|
|
+
|
|
|
|
|
+ return body;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static String get(String url) {
|
|
|
|
|
+ DefaultHttpClient httpclient = new DefaultHttpClient();
|
|
|
|
|
+ String body = null;
|
|
|
|
|
+
|
|
|
|
|
+// log.info("create httppost:" + url);
|
|
|
|
|
+ HttpGet get = new HttpGet(url);
|
|
|
|
|
+ body = invoke(httpclient, get);
|
|
|
|
|
+
|
|
|
|
|
+ httpclient.getConnectionManager().shutdown();
|
|
|
|
|
+
|
|
|
|
|
+ return body;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ private static String invoke(DefaultHttpClient httpclient,
|
|
|
|
|
+ HttpUriRequest httpost) {
|
|
|
|
|
+
|
|
|
|
|
+ HttpResponse response = sendRequest(httpclient, httpost);
|
|
|
|
|
+ String body = paseResponse(response);
|
|
|
|
|
+
|
|
|
|
|
+ return body;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private static String paseResponse(HttpResponse response) {
|
|
|
|
|
+// log.info("get response from http server..");
|
|
|
|
|
+ HttpEntity entity = response.getEntity();
|
|
|
|
|
+
|
|
|
|
|
+// log.info("response status: " + response.getStatusLine());
|
|
|
|
|
+ String charset = EntityUtils.getContentCharSet(entity);
|
|
|
|
|
+// log.info(charset);
|
|
|
|
|
+
|
|
|
|
|
+ String body = null;
|
|
|
|
|
+ try {
|
|
|
|
|
+ body = IOUtils.toString(entity.getContent());
|
|
|
|
|
+// log.info(body);
|
|
|
|
|
+ } catch (ParseException | IOException e) {
|
|
|
|
|
+ log.error("", e);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return body;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private static HttpResponse sendRequest(CloseableHttpClient httpclient,
|
|
|
|
|
+ HttpUriRequest httpost) {
|
|
|
|
|
+// log.info("execute post...");
|
|
|
|
|
+ HttpResponse response = null;
|
|
|
|
|
+
|
|
|
|
|
+ try {
|
|
|
|
|
+ response = httpclient.execute(httpost);
|
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
|
+ log.error("", e);
|
|
|
|
|
+ }
|
|
|
|
|
+ return response;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private static HttpPost postForm(String url, Map<String, String> params) {
|
|
|
|
|
+
|
|
|
|
|
+ HttpPost httpost = new HttpPost(url);
|
|
|
|
|
+ List<NameValuePair> nvps = new ArrayList<NameValuePair>();
|
|
|
|
|
+
|
|
|
|
|
+ Set<String> keySet = params.keySet();
|
|
|
|
|
+ for (String key : keySet) {
|
|
|
|
|
+ nvps.add(new BasicNameValuePair(key, params.get(key)));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ try {
|
|
|
|
|
+// log.info("set utf-8 form entity to httppost");
|
|
|
|
|
+ httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
|
|
|
|
|
+ } catch (UnsupportedEncodingException e) {
|
|
|
|
|
+ log.error("", e);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return httpost;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static String getToken() {
|
|
|
|
|
+ String body = post("https://www.91ctf.com/getAccessToken", new HashMap<>());
|
|
|
|
|
+ JSONObject json = new JSONObject(body);
|
|
|
|
|
+ if (json.getInt("status") == 200) {
|
|
|
|
|
+ log.info("UpdateInfoToken: " + body);
|
|
|
|
|
+ return json.getJSONObject("data").getString("token");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static void updateInfo(String token, Worker worker) {
|
|
|
|
|
+ Map<String, String> params = new HashMap<>();
|
|
|
|
|
+ params.put("atn", "oauth_updateUserInfo");
|
|
|
|
|
+ params.put("access_token", token);
|
|
|
|
|
+ params.put("open_id", String.valueOf(worker.getId()));
|
|
|
|
|
+ params.put("password", worker.getPassword());
|
|
|
|
|
+ log.info("======================= update info =======================");
|
|
|
|
|
+ log.info(post("https://www.91ctf.com/oapi", params));
|
|
|
|
|
+ log.info("===========================================================");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+}
|