Я хочу отправить данные на свою php-страницу с помощью Android. Как мне это сделать?
Вы можете делать запросы GET или POST с помощью AndroidHttpClient :
Этот ответ кажется довольно полным образцом кода.
В Android API есть набор функций, которые позволяют использовать HTTP-запросы, POST, GET и т. Д. В этом примере я предоставлю набор кода, который позволит вам обновлять содержимое файла на сервере с помощью запросов POST.
Наш код на стороне сервера будет очень простым, и он будет написан на PHP. Код получит данные из почтового запроса, обновит файл с данными и загрузит этот файл, чтобы отобразить его в браузере.
Создайте страницу PHP на сервере «mypage.php», код для php-страницы: –
<?php $filename="datatest.html"; file_put_contents($filename,$_POST["fname"]."<br />",FILE_APPEND); file_put_contents($filename,$_POST["fphone"]."<br />",FILE_APPEND); file_put_contents($filename,$_POST["femail"]."<br />",FILE_APPEND); file_put_contents($filename,$_POST["fcomment"]."<br />",FILE_APPEND); $msg=file_get_contents($filename); echo $msg; ?>
Создайте проект Android и напишите ниже код в HTTPExample.java
HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://example.com/mypage.php"); try { List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4); nameValuePairs.add(new BasicNameValuePair("fname", "vinod")); nameValuePairs.add(new BasicNameValuePair("fphone", "1234567890")); nameValuePairs.add(new BasicNameValuePair("femail", "abc@gmail.com")); nameValuePairs.add(new BasicNameValuePair("fcomment", "Help")); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); httpclient.execute(httppost); } catch (ClientProtocolException e) { // TODO Auto-generated catch block } catch (IOException e) { // TODO Auto-generated catch block }
Добавить разрешение в AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
Ниже приведен краткий пример запроса HTTP POST:
try { // Construct data String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8"); data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8"); // Send data URL url = new URL("http://hostname:80/cgi"); URLConnection conn = url.openConnection(); conn.setDoOutput(true); OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); wr.write(data); wr.flush(); // Get the response BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = rd.readLine()) != null) { // Process line... } wr.close(); rd.close(); } catch (Exception e) { }