Я использую этот форум в течение долгого времени, и, прежде всего, я хотел бы сказать спасибо за то, что помог мне много раз. Это первый раз, когда я не нахожу ответа, что делает меня CRAAZZZY …
Я пытаюсь написать супер простое приложение, которое получает / отправляет данные из / в БД. проблема в том, что я не могу публиковать данные (get is fine). Я использую php-файл, который должен получить данные с устройства Android и отправить его в БД. Для начала я не могу опубликовать его в своем php-файле. Я пробовал ВСЕ (что я знаю).
файл PHP-
$test=$_POST['v']; print $_POST['v'];
Файл Java-
public void postData () выдает ClientProtocolException, IOException {
// Create a new HttpClient and Post Header HttpClient httpclient = new DefaultHttpClient(); HttpPost post = new HttpPost("https://www.myweb.coom/test.php"); try { // Add your data List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1); nameValuePairs.add(new BasicNameValuePair("v", "123")); post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); // Execute HTTP Post Request httpclient.execute(post); } catch (ClientProtocolException e) { // TODO Auto-generated catch block } catch (IOException e) { // TODO Auto-generated catch block } }
когда я ставил журнал. * Он показывает мне, что все в порядке. кажется, что PHP не получает никаких данных …
РЕДАКТИРОВАНИЕ ASYNTASK —– публичная загрузка класса расширяет AsyncTask {
@Override protected String doInBackground(String... params) { try { JSONObject json = new JSONObject(); json.put("UserName", "test2"); json.put("FullName", "1234567"); HttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, 10000); HttpConnectionParams.setSoTimeout(httpParams, 10000); HttpClient client = new DefaultHttpClient(httpParams); // String url = "http://my WAMP server/test.php"+ "json={\"UserName\":1,\"FullName\":2}"; HttpPost request = new HttpPost(url); request.setEntity(new ByteArrayEntity(json.toString().getBytes( "UTF8"))); request.setHeader("json", json.toString()); HttpResponse response = client.execute(request); HttpEntity entity = response.getEntity(); // If the response does not enclose an entity, there is no need if (entity != null) { InputStream instream = entity.getContent(); String result = "gr8 Success"; Log.i("Read from server", result); } } catch (Throwable t) { Log.e("Request failed: " ,"ERR"+ t.toString()); } }
-@Override protected String doInBackground(String... params) { try { JSONObject json = new JSONObject(); json.put("UserName", "test2"); json.put("FullName", "1234567"); HttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, 10000); HttpConnectionParams.setSoTimeout(httpParams, 10000); HttpClient client = new DefaultHttpClient(httpParams); // String url = "http://my WAMP server/test.php"+ "json={\"UserName\":1,\"FullName\":2}"; HttpPost request = new HttpPost(url); request.setEntity(new ByteArrayEntity(json.toString().getBytes( "UTF8"))); request.setHeader("json", json.toString()); HttpResponse response = client.execute(request); HttpEntity entity = response.getEntity(); // If the response does not enclose an entity, there is no need if (entity != null) { InputStream instream = entity.getContent(); String result = "gr8 Success"; Log.i("Read from server", result); } } catch (Throwable t) { Log.e("Request failed: " ,"ERR"+ t.toString()); } }
}
Основная деятельность-
public void postData(View v) { //starts on button click if(upload!=null){ if(upload.getStatus()!= AsyncTask.Status.FINISHED){ Log.d("postData","no need to start AsyncTask"); return; } } upload= new Upload(); upload.execute(); Log.i("Async", "Starting..."); }
PHP- $ json = $ _ GET ['json']; $ obj = json_decode ($ json);
$posts = array(1); header('Content-type: application/json'); echo json_encode(array('posts'=>$posts));
ваш домен URL содержит 2 'o. вы должны написать https://www.myweb.com/test.php , а не https: //www.myweb.coom/test.php
Какую версию Android SDK вы используете. Если вы используете 4.1 и выше SDK, пожалуйста, проверьте, что вы делаете http-вызов вторичной нити, а не нити пользовательского интерфейса. Поскольку вы не сообщили об исключении, так что вы дали разрешение на Интернет.