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