123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- package ru.ktk45.www.feature;
- import android.os.AsyncTask;
- import android.util.Log;
- import org.json.JSONException;
- import org.json.JSONObject;
- import java.io.BufferedReader;
- import java.io.DataInputStream;
- import java.io.DataOutputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.io.UnsupportedEncodingException;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.net.URLEncoder;
- import java.util.HashMap;
- import java.util.Map;
- public class Link extends AsyncTask<String, Void, String> {
- private static final String domain = "http://ktk-45.ru";
- private Map<String, String> parameters = new HashMap<>();
- private String GetParametersString() throws UnsupportedEncodingException {
- StringBuilder result = new StringBuilder();
- for (Map.Entry<String, String> entry : parameters.entrySet()) {
- result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
- result.append("=");
- result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
- result.append("&");
- }
- // Считали параметры, больше не нужны, очищаем для следущего запроса
- parameters.clear();
- String resultString = result.toString();
- return resultString.length() > 0
- ? resultString.substring(0, resultString.length() - 1)
- : resultString;
- }
- public JSONObject POST(String url) throws JSONException {
- String result = doInBackground(domain + url);
- if (result.substring(0, 4).equals("Error")) {
- return null;
- }
- JSONObject parser = new JSONObject(result);
- return parser;
- }
- public void SetParameter(String key, String val) {
- parameters.put(key, val);
- }
- @Override
- protected String doInBackground(String... urls) {
- try {
- URL _url = new URL(urls[0]);
- HttpURLConnection connection = (HttpURLConnection)_url.openConnection();
- connection.setRequestMethod("POST");
- connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
- connection.setRequestProperty("Accept", "application/json, text/javascript, */*; q=0.01");
- connection.setRequestProperty("X-Requested-With", "XMLHttpRequest");
- connection.setRequestProperty("Accept-Encoding", "gzip, deflate");
- connection.setDoOutput(true);
- connection.setDoInput(true);
- connection.setUseCaches(false);
- connection.setConnectTimeout(20000);
- String toWrite = GetParametersString();
- DataOutputStream out = new DataOutputStream(connection.getOutputStream());
- out.writeBytes(toWrite);
- out.flush();
- out.close();
- connection.connect();
- BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
- String inputLine;
- StringBuffer content = new StringBuffer();
- while ((inputLine = in.readLine()) != null) {
- content.append(inputLine);
- }
- in.close();
- connection.disconnect();
- return content.toString();
- } catch (IOException e) {
- return "Error: " + e.getMessage();
- }
- }
- // onPostExecute displays the results of the AsyncTask.
- @Override
- protected void onPostExecute(String result) {
- Log.i("INFO", result);
- }
- }
|