在Android中使用NameValuePair发送double值

时间:2015-02-04 10:06:23

标签: android eclipse basicnamevaluepair

我正在尝试通过网络服务连接到服务器。在这个Web服务中,我传递了namevaluepairs列表。现在问题是namevaluepair只接受(String,String)参数。我的服务器期望双值的位置。所以我无法将我的double转换为字符串并传递它(因为服务器将看到一个字符串并将抛出'错误格式'错误。

        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
        nameValuePairs.add(new BasicNameValuePair("Name", mydoublevalue));  
        JSONArray jsonobj = jsonParser.makeHttpRequest_array(url,type, nameValuePairs);

有什么出路吗?或者我是否必须将服务器的double类型更改为字符串,以便服务器期望字符串而不是double?

2 个答案:

答案 0 :(得分:0)

这会将double值转换为String。

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("Name", String.valueOf(mydoublevalue)));  
            JSONArray jsonobj = jsonParser.makeHttpRequest_array(url,type, nameValuePairs);

答案 1 :(得分:0)

最后我设法只在Android方面做到了。

这是我做了什么。 我创建了自己的类来实现NameValuePair接口。在那里你可以在BasicNameValuePair中使用STRING,DOUBLE而不是STRING,STRING。这是代码。

import org.apache.http.NameValuePair;

public class DoubleNameValuePair implements NameValuePair {

 String name;

    double value;

    public DoubleNameValuePair(String name, double value) {
        this.name = name;
        this.value = value;
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public String getValue() {
        return Double.toString(value);
    }

}

然后,当您想要添加到列表时,只需执行

nameValuePairs.add(new DoubleNameValuePair("Latitude",21.3243));