使用nameValuePairs在Android中通过HTTP发布整数值

时间:2012-03-05 22:10:49

标签: android http-post

我正在尝试将游戏高分发布到我的数据库表中,但我无法通过传递整数值,只传递字符串来弄清楚如何做到这一点。以下是我想在游戏结束时调用的方法,这应该将分数插入到我的表的分数列中。

    public void postData() {


    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://deucalion0.co.uk/insert.php");

    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
        nameValuePairs.add(new BasicNameValuePair("score", finalscore));    //"score" is the name of the database table, finalscore is the integer that contains the value
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);

    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
} 

我在参数“得分”下得到一条红线,因为它告诉我它只能取一个字符串,它知道最终得分是一个整数。

如果我能解决这个问题,那么我将创建一种方法,用户可以通过表单输入输入名称,并将其与分数一起输入到表格的用户列中。我已经通过Stackoverflow搜索了整数和nameValuePairs的帮助,但找不到任何东西。

我感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:7)

URL编码的表单是文本。您必须将整数分数转换为文本并将其解析回服务器端的整数。或者,您可以设计某种类型的游戏状态数据和POST的二进制文件,但如果您只想要一个名称和一个分数,那就严重过度了。