我有一张表格显示每个月在给定位置的各种部署类型的员工部署:
ID | Location_ID | Date | NumEmployees | DeploymentType_ID
Run Code Online (Sandbox Code Playgroud)
例如,一些记录可能是:
1 | L1 | 12/2010 | 7 | 1 (=Permanent)
2 | L1 | 12/2010 | 2 | 2 (=Temp)
3 | L1 | 12/2010 | 1 | 3 (=Support)
4 | L1 | 01/2011 | 4 | 1
5 | L1 | 01/2011 | 2 | 2
6 | L1 | 01/2011 | 1 | 3
7 | L2 | 12/2010 | 6 | 1
8 | L2 …Run Code Online (Sandbox Code Playgroud) 我有一个Android应用程序,我试图使用HTTPGet将一些数据传递给Web服务.如果我只是使用JSONArray.toString()方法构造字符串,我最终得到的URL类似于以下内容:
http://xxx.xx.xxx.xx/api?method=upload&args[deviceID]=123456789&args[data]=["{element1=93295352, element2=235235, element3=3523523}","{element1=93295352, element2=235235, element3=3523523}"]
Run Code Online (Sandbox Code Playgroud)
由于URL中的空格和引号,这不起作用.如果我擅自做以下事情:
JSONArray ja = new JSONArray();
// Add Data to JSONArray
String s = ja.toString();
// Add array to StringBuilder url
HTTPGet httpget = new HTTPGet(UrlEncoder.encode(url.toString()));
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,因为整个URL被编码并最终结果如下:
http%3A%2F%2Fxxx.xx.xxx.xx%2Fapi%3Fmethod%3Dupload%26args%5BdeviceID%5D%3D123456879%26args%5Bdata%5D%3D%5B%22%7Belement1%3D915156028000%2C+element2%3D1651651%2C+element3%3D489461%7D%22%2C%22
Run Code Online (Sandbox Code Playgroud)
显然,这不是我正在寻找的,并且必须有一个更好的解决方案,而不是搜索/替换该URL的JSONArray部分中的所有必要字符,尽管我认为这样做不会是一个巨大的麻烦,因为我只担心引用和空格字符.
请注意,手动将其粘贴到我的浏览器中会返回我期望的结果:
http://xxx.xx.xxx.xx/api?method=upload&args[deviceID]=123456789&args[data]=[%22{element1=915156028000,%20element2=0.0,%20element3=2.297444}%22,%22{element1=915156055000,%20element2=0.0,%20element3=2.2974419999999998}%22]
Run Code Online (Sandbox Code Playgroud)