我正在使用批量短信 api 来触发向手机号码和 Android 手机发送短信。群发短信接口(interface)格式如下
http://xxx.xxx.xxx/bulksms/bulksms?username=fds-xxx&password=xxx&type=0&dlr=1&destination=9422522891,8275004333&source=xxx&message=18%20December
以下是我可以使用代码在 android 中以字符串形式获得的响应
bytesSent = httpclient.execute(httppost, res);
回复如下
1701|919422522891:224c1214-bb95-414d-ba76-77db95370545,1701|918275004333:5e93a439-2644-4455-9f01-f27e6cf0cde6
如何像键值对一样解析这个响应?
下面的代码有点成功,但是当正则表达式字符是'|'时它失败了
public String[] split(String regex,String input)
{
input = "1701|919422522891:224c1214-bb95-414d-ba76-77db95370545,1701|918275004333:5e93a439-2644-4455-9f01-f27e6cf0cde6";
regex = "|"; // does not work
//regex = ":"; // works correct
String[] soso = Pattern.compile(regex).split(input, input.length());
for (String s : soso) {
Log.e("TAG",s.toString());
}
return null;
}
对于正则表达式字符 '|'
我得到一个日志输出作为单个字符串数组,如 {"1","7","0",.......}
更新
regex = "\\|" // works fine
最佳答案
- 使用split() method的字符串将响应拆分为不同的条目。
- 遍历结果数组
- 再次使用 split() 将键与值分开
- 将结果存储在一个map中,
result[0]
是键,result[1]
是值
如果您需要维持秩序,请确保您使用可以做到这一点的 map ,例如LinkedHashMap
关于android - 如何解析以下格式的 HTTP 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27561523/