在 Android 中使用 NameValuePair 发送双精度值
Send double value with NameValuePair in Android
我正在尝试通过网络服务连接到服务器。在此 Web 服务中,我正在传递名称值对列表。现在的问题是 namevaluepair 只接受 (String,String) 参数。我的服务器在哪里需要双重价值。所以我无法将我的双精度转换为字符串并传递它(因为服务器会将其视为字符串并会抛出 'Improper format' 错误。
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("Name", mydoublevalue));
JSONArray jsonobj = jsonParser.makeHttpRequest_array(url,type, nameValuePairs);
有什么办法吗?。还是我必须将服务器的双精度类型更改为字符串,以便服务器期望字符串而不是双精度?
这会将双精度值转换为字符串。
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("Name", String.valueOf(mydoublevalue)));
JSONArray jsonobj = jsonParser.makeHttpRequest_array(url,type, nameValuePairs);
最后我设法只从 Android 方面做到了。
这是我所做的。
我创建了自己的 class 来实现 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));
我正在尝试通过网络服务连接到服务器。在此 Web 服务中,我正在传递名称值对列表。现在的问题是 namevaluepair 只接受 (String,String) 参数。我的服务器在哪里需要双重价值。所以我无法将我的双精度转换为字符串并传递它(因为服务器会将其视为字符串并会抛出 'Improper format' 错误。
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("Name", mydoublevalue));
JSONArray jsonobj = jsonParser.makeHttpRequest_array(url,type, nameValuePairs);
有什么办法吗?。还是我必须将服务器的双精度类型更改为字符串,以便服务器期望字符串而不是双精度?
这会将双精度值转换为字符串。
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("Name", String.valueOf(mydoublevalue)));
JSONArray jsonobj = jsonParser.makeHttpRequest_array(url,type, nameValuePairs);
最后我设法只从 Android 方面做到了。
这是我所做的。 我创建了自己的 class 来实现 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));