0

我正在尝试通过网络服务连接到服务器。在此 Web 服务中,我正在传递名称值对列表。现在的问题是 namevaluepair 只接受 (String,String) 参数。我的服务器期望双倍值。所以我不能将我的双精度转换为字符串并传递它(因为服务器会看到一个字符串并且会抛出一个“格式不正确”的错误。

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

有什么出路吗。。还是我必须将服务器的双精度类型更改为字符串,以便服务器期望字符串而不是双精度?

4

2 回答 2

0

这会将双精度值转换为字符串。

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("Name", String.valueOf(mydoublevalue)));  
            JSONArray jsonobj = jsonParser.makeHttpRequest_array(url,type, nameValuePairs);
于 2015-02-04T10:19:41.617 回答
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));
于 2015-02-05T05:29:01.663 回答