Android HttpGet Web数据库插入请求

时间:2011-06-17 19:31:23

标签: android http-get

我正在编写一个应用程序,用户输入歌曲信息,然后在网站上查看。我想让这个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 个答案:

答案 0 :(得分:1)

你应该真的使用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());
}

希望有所帮助!

答案 1 :(得分:0)

为什么不尝试使用POST呢?看看这篇文章:

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