如何在URL中传递多个参数?

5 浏览
0 Comments

如何在URL中传递多个参数?

我正在尝试弄清楚如何在URL中传递多个参数。我想要将经纬度从我的android类传递到一个java servlet。我应该如何做呢?

URL url;
double lat=touchedPoint.getLatitudeE6() / 1E6;
double lon=touchedPoint.getLongitudeE6() / 1E6;
url = new URL("http://10.0.2.2:8080/HelloServlet/PDRS?param1="+lat+lon);

在这种情况下,输出(写入文件)为28.53438677.472097

这个方法可以运行,但是我想要将经纬度分别作为两个参数传递,以减少服务器端的工作量。如果这不可能,至少我可以如何在latlon之间添加一个空格,这样我就可以使用tokenizer类来获取我的经纬度。我尝试了下面这行代码,但没有成功。

url = new URL("http://10.0.2.2:8080/HelloServlet/PDRS?param1="+lat+" "+lon);
输出- 没有写入文件
url = new URL("http://10.0.2.2:8080/HelloServlet/PDRS?param1="+lat+"&?param2="+lon);
输出- 28.534386(只有纬度)
url = new URL("http://10.0.2.2:8080/HelloServlet/PDRS?param1="+lat+"?param2="+lon);
输出- 28.532577?param2=77.502996

我的servlet代码如下:

req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
final String par1 =  req.getParameter("param1");
final String par2 = req.getParameter("param2");
FileWriter fstream = new FileWriter("C:\\Users\\Hitchhiker\\Desktop\\out2.txt");
BufferedWriter out = new BufferedWriter(fstream);
out.write(par1);
out.append(par2);
out.close();

我还想知道这是否是从android设备到服务器传递数据的最安全可靠的方法。

0