Попытка отправить данные формы Android через PHP POST METHOD - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь создать форму для отправки информации с помощью метода POST.

public class PostData extends AsyncTask<String, Void, String> {
    @Override
    protected String doInBackground(String... params) {
        try {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://www.yourdomain.com/serverside-script.php");
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
            nameValuePairs.add(new BasicNameValuePair("id", "01"));
            nameValuePairs.add(new BasicNameValuePair("message", params[0]));
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            try {
                HttpResponse response = httpclient.execute(httppost);
                String op = EntityUtils.toString(response.getEntity(), "UTF-8");//The response you get from your script
                return op;
            } catch (IOException e) {
                e.printStackTrace();
            }
            //reset the message text field
        } catch (IOException e) {
            e.printStackTrace();
        }

        return null;
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        msgTextField.setText("");
        Toast.makeText(getBaseContext(), "Sent", Toast.LENGTH_SHORT).show();
    }
}

Но я получаю ошибки при попытке импортировать HttpClient, HttpPost, BaseNameValuePair и т. Д. ....

import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

Пожалуйста, помогите !!

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

вам нужно использовать okhttp, а не http. Нажмите здесь, чтобы проверить данные okhttp.

https://www.studytutorial.in/android-okhttp-post-and-get-request-tutorial

0 голосов
/ 05 октября 2018

HttpClient устарело на уровне API 22 * ​​1003 * и удалено на уровне API 23 .Вы должны использовать HttpURLConnection.

Документы, как использовать: -

https://developer.android.com/reference/java/net/HttpURLConnection

Пример: -

URL url = new URL("http://yoururl.com");
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);

Uri.Builder builder = new Uri.Builder()
        .appendQueryParameter("id", "01")
        .appendQueryParameter("message", params[0]);
String query = builder.build().getEncodedQuery();

OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
            new OutputStreamWriter(os, "UTF-8"));
writer.write(query);
writer.flush();
writer.close();
os.close();

conn.connect();

Но, если вы все еще хотите использовать его, вам нужно добавить дополнительные зависимости для него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...