Android HttpGet Запрос на вставку веб-базы данных - PullRequest
0 голосов
/ 17 июня 2011

Я пишу приложение, в котором пользователь вводит информацию о песне, которая затем будет просматриваться на веб-сайте.Я пытаюсь заставить этот запрос HttpGet работать.Мне действительно не нужен сервер для возврата какой-либо информации.Мне просто нужна информация для хранения в базе данных MySQL.Что касается php, я использую $ _GET для получения информации.Я подхожу к этому неправильно?Вот мой код Android:

public void executeHttpGet() throws Exception{
    BufferedReader in = null;
    try {
        HttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet(
              "http://localhost:8888/?title=hello&artist=horray");
        HttpResponse response = client.execute(request);
        in = new BufferedReader
        (new InputStreamReader(response.getEntity().getContent()));
        StringBuffer sb = new StringBuffer("");
        String line = "";
        String NL = System.getProperty("line.separator");
        while ((line = in.readLine()) != null) {
            sb.append(line + NL);
        }
        in.close();
        String page = sb.toString();
        System.out.println(page);
        } finally {
        if (in != null) {
            try {
                in.close();
                } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

Ответы [ 2 ]

1 голос
/ 18 июня 2011

Вы должны действительно использовать POST для этого вместо GET. Вам придется изменить свой PHP, но поскольку вы вставляете данные в базу данных, вам не следует использовать GET. Это именно то, для чего POST.

Кроме того, «localhost» не будет работать, поскольку при работе на эмуляторе «localhost» означает телефон. На эмуляторе «10.0.2.2» означает ваш компьютер. Поэтому я предполагаю, что вы хотите использовать это.

HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("10.0.2.2:8888");

try {
    List<NameValuePair> params = new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair("title", "hello"));
    params.add(new BasicNameValuePair("artist", "horray"));
    httpPost.setEntity(new UrlEncodedFormEntity(params));

    httpClient.execute(httpPost);
    Log.i("posting", "Saved to server");
} catch (Exception e) {
    Log.e("posting", e.getMessage());
}

Надеюсь, это поможет!

0 голосов
/ 17 июня 2011

Почему бы не попробовать вместо этого использовать POST? Взгляните на эту статью:

http://www.androidsnippets.com/executing-a-http-post-request-with-httpclient

...